Maven
解决依赖冲突
我们可以通过 exclusion
xml
<dependency>
......
<exclusions>
<exclusion>
<artifactId>x</artifactId>
<groupId>org.apache.x</groupId>
</exclusion>
</exclusions>
</dependency>
一般我们在解决依赖冲突的时候,都会优先保留版本较高的。这是因为大部分 jar 在升级的时候都会做到向下兼容。
Maven 的生命周期
就是为了对所有的构建过程进行抽象和统一,包含了项目的清理;初始化、编译、测试、打包、集成测试、验证;部署和站点生成等构建步骤。
Maven 定义了 3 个生命周期 META-INF/plexus/components.xml
:
default
生命周期clean
生命周期site
生命周期
Maven 生命周期是由几个不同的构建阶段组成,包括 validate、compile、test、package、verify、install 和 deploy 等,clean 和 site 是其中一个单独的独立生命周期。
这些生命周期是相互独立的,每个生命周期包含多个阶段(phase)。并且,这些阶段是有序的,也就是说,后面的阶段依赖于前面的阶段。当执行某个阶段的时候,会先执行它前面的阶段。
当我们执行 mvn test
命令的时候,会执行从 validate 到 test 的所有阶段,这也就解释了为什么执行测试的时候,项目的代码能够自动编译。
mvn clean
命令通常用于删除所有生成的文件,如编译的.class 文件和构建的 JAR 文件等。
如果你想在运行测试之前清理构建,你可以组合使用 mvn clean test
命令,这样会先执行 clean 生命周期,然后再执行到 test 阶段的任务。
创建 Maven 工程
解压部署 Maven 核心程序
① 检查JAVA_HOME环境变量 ② 解压Maven的核心程序 ③ 配置环境变量 ④ 查看Maven版本信息验证安装是否正确
bash
mvn -v
修改本地仓库 ① 指定本地仓库位置的配置信息文件:apache-maven\conf\settings.xml
② 在根标签settings下添加如下内容:<localRepository>[本地仓库路径,也就是RepMaven.zip的解压目录]</localRepository>
第一个 Maven 工程
① 目录结构 Hello |---src |---|---main |---|---|---java |---|---|---resources |---|---test |---|---|---java |---|---|---resources |---pom.xml ② POM文件内容
bash
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>pro02</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>pro02</name>
<url>http://maven.apache.org</url>
<modules>
<module>pro03</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
③编写主程序代码
在src/main/java/maven目录下新建文件Hello.java,内容如下
bash
public class Hello {
public void showMessage(){
System._out_.println("Hello maven!I an in idea now!");
}
}
④编写测试代码
在/src/test/java/maven目录下新建测试文件HelloTest.java
bash
import org.junit.Test;
public class HelloTest {
@Test
public void testHello(){
Hello hello = new Hello();
hello.showMessage();
}
}
⑤运行几个基本的Maven命令
bash
mvn compile //编译
bash
mvn clean //清理
bash
mvn test //测试
bash
mvn package //打包
※注意:运行 Maven 命令时一定要进入 pom.xml 文件所在的目录!