3

I am working on a Maven multi-modules project. I want to build a given module and skip the unit tests to speed the build process up.

I've tried the following:

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

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

However, this does not have an effect at all. Any clues?

4

3 回答 3

6

您的第一行看起来是正确的想法,但-Dgoals您应该使用-Dmake.goals.

反应器插件示例页面

reactor 插件启动了 Maven 的第二个副本来发挥它的魔力。此 Maven 副本不一定具有您传递给第一个 Maven 副本的所有标志和选项,包括 --debug 标志、系统属性和 -DskipTests。

您可以通过使用 -Dmake.goals 将其他参数视为目标,将其他参数传递给生成的 Maven,如下所示:

mvn reactor:resume -Dmake.folders=barBusinessLogic -Dmake.goals=install,-DskipTests

换句话说,“目标”只是传递给生成的 Maven 的额外命令行参数;它们不一定是“目标”。

如果你想要真正花哨,你可能更喜欢在 -Dmake.printOnly 模式下干运行反应器插件,如上所述。这将打印出插件用于构建的命令,但您可以根据自己的喜好调整该命令行!

于 2011-01-01T18:13:47.097 回答
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
于 2010-11-29T22:11:44.260 回答
2

您是否尝试过在您正在运行的命令行参数中包含选项-Dmaven.test.skip=true (注意大小写)?与 Java 一样,Maven 区分大小写。但通常,您可以删除 =true 部分,这也会导致测试被跳过。

于 2010-11-22T16:59:58.333 回答