在默认情况下,Maven会根据多模块配置构建所有的模块,Maven还会根据模块间的依赖关系自动计算构建顺序,以确保被依赖的模块会先得以构建。值得一提的是,在这种情形下,Maven会将父模块看成是其子模块的依赖
Maven提供了很多命令行选项让我们自定义反应堆,输入mvn -h可以看到这样一些选项:
-pl,--projects <arg> Comma-delimited list of specified 在指定模块上执行命令
reactor projects to build instead
of all projects. A project can be
specified by [groupId]:artifactId
or by its relative path
-am,--also-make If project list is specified, also 依赖的包也构建
build projects required by the
list
-amd,--also-make-dependents If project list is specified, also
build projects that depend on
projects on the list
-rf,--resume-from <arg> Resume reactor from specified
Project
-f,--file <arg> Force the use of an alternate POM
file (or directory with pom.xml)
-D,--define <arg> Define a system property 定义一个系统级别的属性 -Dxxx=yyy指定java全局属性
-U 强制更新snapshot类型的插件或依赖库(否则maven一天只会更新一次snapshot依赖)**加粗样式**
-e 显示详细错误
常用跳过检测命令
clean install -Dmaven.test.skip=true -Pprd #表示指定打包的环境 ,prd表示环境的id名称
mvn install -DskipTests
clean install -DskipTests -Denv=prd #指定打包环境
指定即使没有任何测试用例也不要报错
test参数必须匹配至少一个测试类,否则会报错并导致构建失败。此时可使用以下配置来指定即使没有任何测试用例也不要报错。
mvn test -Dtest -DfailIfNoTests = false
--projects 表示手动选择需要构建的项目,项目间以逗号分隔。
e.g: mvn clean package -pl projectName
--also-make 的前提是--projects参数,表示同时构建所列模块依赖的其他模块。
--also-make-dependents 的前提是--projects参数,表示同时构建那些依赖于所列模块的模块。
-resume-from 表示从该模块恢复,也就是说选择从哪里开始构建,等于剪掉了完整反应堆的前面一部分。
样例:
mvn clean -U package -pl plough-app -am -Dtest -DfailIfNoTests=false
-U表示每次都更新快照版本的jar包, -pl指定打包模块为plough-app ,-am表示这个模块依赖的相关模块也构建。 -Dtest表示没有指定测试类,-DfailIfNoTests=false表示没有测试类时不失败
感谢读者,您的支持是我持续进步的坚强后盾