Clean 生命周期:进行构建前的一些清理
- mvn clean 清除编译数据
Default 生命周期:编译、测试、打包、发布等核心部分
- mvn compile 编译源代码(只编译main目录,不编译test中的代码)
- mvn test-compile 编译test目录中的代码
- mvn test 运行test测试
- mvn package 打包
- mvn install 在本地仓库中安装jar包(包括compile,package,然后上传本地仓库)
- mvn deploy 上传到私服(包含install,然后上传私服)
Site 生命周期:生成项目报告,发布site项目站点
- mvn site 生成静态项目文档
一套生命周期中,生命周期阶段前后依赖
三套生命周期相互独立,不同生命周期命令可以一起执行,如可以使用mvn clean install site运行这三套生命周期
Maven命令行插件配置
可以在Maven命令中使用 -D 参数,并伴随一个参数键 = 参数值的形式,来配置插件目标的参数。
例如,maven-surefire-plugin(与测试绑定的插件)提供了一个maven.test.skip参数,当其值为true时,就会跳过执行测试。
于是,在执行命令时,加上如下 -D 参数就能跳过测试:
$ mvn install -Dmaven.test.skip = true
跳过测试也可以使用:
$ mvn clean install -DskipTests
二者区别在于:
- 参数maven.test.skip同时跳过了测试代码的编译和运行。
- skipTests只跳过了测试运行。
Maven裁剪反应堆指令
什么是反应堆?
对于单模块项目而言,反应堆就是该模块本身;
对于多模块项目来说,反应堆还包含了各模块之间的继承与依赖的关系,从而能够计算出合理的模块构建顺序。
构建顺序为:如果该POM没有依赖模块,那么就先构建该模块;否则就先构建其依赖模块,如果该依赖还依赖于其他模块,则进一步先构建依赖的依赖。
裁剪反应堆指令
- -am, --also-make,同时构建所列模块的依赖模块
- -amd,–also-make-dependents,同时构建依赖于所列模块的模块
- -pl,–projects < arg >,构建指定的模块 ,模块间用逗号分隔
- -rf,–resume-from < arg >,从指定的模块回复反应堆
例:
$ mvn clean install -pl module-1,module-2 构建模块1和模块2
$ mvn clean install -pl module-1 -am 构建模块1和其所依赖的模块
$ mvn clean install -pl module-1 -amd 构建模块1和依赖于模块1的模块
$ mvn clean install -rf module-3
使用-rf选项可以在完整的反应构建顺序基础上指定从哪个模块开始构建。
该例中,假如原始完整的构建顺序为module-1-> 2 -> 3 -> 4,该命令执行的构建顺序为从module-3开始,即module-3 -> 4。