如何在使用Maven反应器时跳过测试?

时间:2010-11-22 10:20:10

标签: maven testing maven-reactor

我正在开发一个Maven多模块项目。我想构建一个给定的模块并跳过单元测试来加快构建过程。

我尝试了以下内容:

mvn reactor:make -Dmake.folders=search -Dgoals=package,-DskipTests

mvn reactor:make -Dmake.folders=search -Dgoals=package -Dmaven.test.skip=True

然而,这根本没有效果。有线索吗?

3 个答案:

答案 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部分,这也应该导致跳过测试。