Maven基础知识

Maven基础知识

一、Maven的作用

  • 更方便的导入jar包,避免版本冲突问题

  • 标准项目结构:

  • 标准化的项目构建流程

二、Maven的安装和集成

  • 安装步骤:

    1. 下载并解压 apache-maven-3.9.11-bin.zip

    2. 配置本地仓库:修改 conf/settings.xml 中的 为一个指定目录。

      xml 复制代码
      <localRepository>D:\JAVA\develop\apache-maven-3.9.11\mvn_repo</localRepository> 
      <!-- 此处设置为自己的目录用于下载jar包 -->
    3. 配置阿里云私服:修改 conf/settings.xml 中的标签,为其添加如下子标签:

      xml 复制代码
      <mirror>
      	<id>alimaven</id>
      	<name>aliyun maven</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
          <mirrorOf>centralrOf>
      </mirror>
    4. 配置环境变量:MAVEN_HOME为maven的解压目录,并将其bin目录加入PATH环境变量

      • 在命令行中执行mvn -v测试Maven是否安装成功
  • VScode创建maven项目

    参考文章:(43 封私信) 配置 Maven 并创建项目-VScode - 知乎

三、依赖管理

3.1 依赖配置

  • 依赖:指当前项目运行所需要的jar包,一个项目中可以引入多个依赖

  • 配置:

    1. 在pom.xml中编写标签
    2. 在标签中使用引入坐标
    3. 定义坐标的 groupId, artifactId, version
    4. 点击刷新,引入最新加入的坐标
xml 复制代码
<dependencies>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>1.2.3</version>
    </dependency>
</dependencies>
  • 如果不知道依赖的坐标信息,可以到maven网站搜索

3.2 依赖传递

  • 依赖具有传递性
    • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
    • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
  • VScode需要对依赖传递的项目,从最底层依赖,进入到对应文件根目录,依次向上执行

    cmd 复制代码
    mvn clean install

    最后能在maven控制面板中看到依赖传递

  • 排除依赖:主动断开依赖的资源,被排出的资源无需指定版本

    xml 复制代码
        <dependencies>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.2.3</version>
            </dependency>
    
            <dependency>
                <groupId>com.itheima</groupId>
                <artifactId>maven-projectB</artifactId>
                <version>1.0-SNAPSHOT</version>
                <!-- 排除依赖-->
                <exclusions>
                    <exclusion>
                        <groupId>junit</groupId>
                        <artifactId>junit</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
        </dependencies>

3.3 依赖范围

  • 依赖的jar包,默认情况下可以再任何地方使用,可以使用...设置其作用范围

3.4 生命周期

  • Maven生命周期就是为了对所有的maven项目构建过程进行抽象和统一

  • Maven中有三套相互独立的生命周期

    • clean:清理工作
    • default:核心工作,如编译,测试,打包,安装,部署等
    • site:生成报告、发布站点等
  • 五个重要的生命周期阶段:

    • clean:移除上一次构建生成的文件
    • compile:编译项目源代码
    • test:使用合适的单元测试框架运行测试(junit)
    • package:将编译后的文件打包,如:jar、war
    • install:安装项目到本地仓库
  • 在Maven面板中 lifecycle中双击需要执行的阶段即可。

java 复制代码
// 测试生命周期中的test操作
package com.zcn;

import org.junit.Test;

public class DemoTest {
    @Test
    public void test1() {
        System.out.println("hello test1");
    }

    @Test
    public void test2() {
        System.out.println("hello test2");
    }

    @Test
    public void test3() {
        System.out.println("hello test3");
    }
}
相关推荐
C雨后彩虹15 小时前
CAS与其他并发方案的对比及面试常见问题
java·面试·cas·同步·异步·
java1234_小锋16 小时前
Java高频面试题:SpringBoot为什么要禁止循环依赖?
java·开发语言·面试
2501_9445255416 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 账户详情页面
android·java·开发语言·前端·javascript·flutter
计算机学姐16 小时前
基于SpringBoot的电影点评交流平台【协同过滤推荐算法+数据可视化统计】
java·vue.js·spring boot·spring·信息可视化·echarts·推荐算法
Filotimo_16 小时前
Tomcat的概念
java·tomcat
索荣荣17 小时前
Java Session 全面指南:原理、应用与实践(含 Spring Boot 实战)
java·spring boot·后端
Amumu1213817 小时前
Vue Router(二)
java·前端
念越18 小时前
数据结构:栈堆
java·开发语言·数据结构
千寻技术帮18 小时前
10333_基于SpringBoot的家电进存销系统
java·spring boot·后端·源码·项目·家电进存销