我正在开发一个Maven多模块项目。我想构建一个给定的模块并跳过单元测试来加快构建过程。
我尝试了以下内容:
mvn reactor:make -Dmake.folders=search -Dgoals=package,-DskipTests
mvn reactor:make -Dmake.folders=search -Dgoals=package -Dmaven.test.skip=True
然而,这根本没有效果。有线索吗?
答案 0 :(得分:6)
您的第一行看起来是正确的想法,但您应该使用-Dgoals
代替-Dmake.goals
。
来自reactor plugin examples page:
反应堆插件启动第二个 Maven的副本做它的魔力。这个 Maven的副本不一定有 你的所有旗帜和选项 传递给你的第一份Maven, 包括--debug标志,系统 属性和-DskipTests。
您可以传递其他参数 产卵的Maven被视为 -Dmake.goals的目标,如下:
mvn reactor:resume -Dmake.folders=barBusinessLogic -Dmake.goals=install,-DskipTests
换句话说,“目标”就是 传递了额外的命令行参数 产生的Maven;他们没有 必须是“目标”。
如果你想变得非常花哨,那么 可能更喜欢干燥反应器 插件-Dmake.printOnly模式, 如上所述。那将打印出来 插件的命令 用于构建,但你可以调整 命令行到你的内心!
答案 1 :(得分:3)
鉴于项目结构
/
A/pom.xml
B/pom.xml
C/pom.xml
D/pom.xml
E/pom.xml
pom.xml (parent pom file that includes A,B,C,D,E modules)
与您的
类似mvn reactor:make -Dmake.folders=C,D,E -Dgoals=package -Dmaven.test.skip=True
虽然我不确定我的方法是否完全符合反应堆插件的作用,但我发现以下方法对我来说效果不错
mvn -pl=C,D,E -DskipTests=true package
答案 2 :(得分:2)
您是否尝试将选项-Dmaven.test.skip=true(注意案例)包含在您正在运行的命令行参数中?与Java一样,Maven区分大小写。但通常,您可以删除= true部分,这也应该导致跳过测试。