如何使maven发布插件跳过测试?

Dav*_*Xia 25 maven maven-release-plugin

我在Spotify的docker-clientmvn release:prepare -Darguments="-Dmaven.test.skip=true -DskipTests"的主要结账时运行.但我不能让maven的发布插件跳过测试.为什么maven在这种情况下不尊重CLI标志?

我也很好奇是什么原因导致release插件执行surefire-plugin.没有指定的surefire-plugin pom.xml.

mvn --version

Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T12:29:23-05:00)
Maven home: /usr/local/Cellar/maven/3.2.5/libexec
Java version: 1.7.0_25, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.10.2", arch: "x86_64", family: "mac"
Run Code Online (Sandbox Code Playgroud)

Dav*_*Xia 91

这对我有用.我想要准备和执行发布.

mvn clean -DskipTests -Darguments=-DskipTests release:prepare release:perform
Run Code Online (Sandbox Code Playgroud)

  • `-Darguments=-DskipTests` 就足够了。不需要第一个“-DskipTests”。 (9认同)
  • OP的命令已经在“-Darguments”下有“-DskipTests”,那么为什么它对他不起作用呢?事实上,我在一个项目中也注意到了同样的事情。 (3认同)
  • 这根本没有回答原来的问题,我真的很惊讶它仍然得到了这么多的赞成票。对于可能的根本原因,请参阅我的答案:/sf/answers/4314845741/ (2认同)

nrk*_*yan 5

我在我的 pom.xml 中使用了以下内容

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-release-plugin</artifactId>
    <version>2.5.3</version>
    <configuration>
        <tagNameFormat>v@{project.version}</tagNameFormat>
        <arguments>-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true</arguments>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

  • 没有-Dmaven.test.skipTests这样的设置。它称为 -DskipTests,它只是跳过运行测试。在这种情况下,您还传递了 maven.test.skip,它会跳过测试源的编译步骤,因此无论如何都没有测试可以运行。TL;DR:`-Dmaven.test.skipTests=true -Dmaven.test.skip=true` 可以替换为:`-Dmaven.test.skip` (2认同)
  • 事实并非如此,skipTests 编译测试但不运行它们,而 maven.test.skip=true 甚至跳过编译。 (2认同)

khm*_*ise -10

有两件事。首先,如果您想运行一个版本,您需要运行mvn release:perform它真正运行最终版本的步骤,而不是mvn release:prepare. 如果您想跳过中的测试,mvn release:prepare则应该使用mvn -Dmaven.test.skip=true加上您定义的给定参数。

除此之外,maven-surefire-plugin 是在默认生命周期中定义的

  • @khmarbaise:根据https://jira.codehaus.org/browse/MRELEASE-700,它是 `mvn release:prepare argument='-Dmaven.test.skip=true'` (4认同)
  • 我运行了 `mvn release:prepare -Dmaven.test.skip=true -Darguments="-Dmaven.test.skip=true -DskipTests"` 并且它仍然运行测试。 (2认同)