如何让maven-release-plugin跳过我的测试?

nvbavucw  于 2023-11-17  发布在  Maven
关注(0)|答案(7)|浏览(219)

我怎样才能让maven-release-plugin在不触发测试的情况下运行?
我已经尝试

-Dmaven.test.skip=true

字符串

-DskipTests


-DpreparationGoals=clean


……但没有一个工作。
是的,我知道如果测试没有通过我就不应该发布,但是我无法控制让我的同事编写可靠的测试。

hyrbngr7

hyrbngr71#

-Darguments="-DskipTests"是你想要的,或者在pom中显式配置forked execution。

yrwegjxp

yrwegjxp2#

-Darguments="..."将参数传递给分叉的maven进程,但重要的是要意识到这里使用了两个不同的开关。(如果您对test-jar类型有任何依赖,这一点很重要)。-Dmaven.test.skip=true强制maven甚至不编译测试,这意味着将不会生成任何测试罐。
因此,您必须使用-Darguments,但要跳过正在运行的测试,请仅使用skipTests,要停止编译,请使用maven.test.skip

osh3o9ms

osh3o9ms3#

如果你只是想跳过集成测试,这将做到这一点:

-Darguments="-DskipITs"

字符串

olhwl3o2

olhwl3o24#

你有太多不同的选择来避免和跳过发布插件的测试

  • 第一种是通过提供一个-Darguments作为参数传递到发布目标或阶段:

价格:mvn -X -Darguments="-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true" -P release-mode release:prepare

  • 第二个是在构建中对pom.xml执行这些参数,如下所示:
<plugin>    
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.scm</groupId>
                        <artifactId>maven-scm-provider-gitexe</artifactId>
                        <version>1.9.4</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <skip>true</skip>
                    <skipTests>true</skipTests>
                    <preparationGoals>clean validate</preparationGoals>
                    <arguments>-Dmaven.javadoc.skip=true -Dmaven.test.skipTests=true -Dmaven.test.skip=true</arguments>
                    <useReleaseProfile>false</useReleaseProfile>
                    <releaseProfiles>release-mode</releaseProfiles>
                    <tagNameFormat>TEST-@{project.version}</tagNameFormat>
                </configuration>
            </plugin>

字符串
请注意,第二个方法会覆盖第一个方法。
我建议你在一个单独的操作上首先准备发布,然后你可以在工作目录上编辑release.properties文件,如果你的参数在那里,看看exec.additionalArguments属性。它看起来像:exec.additionalArguments=-Dmaven.javadoc.skip\=true -Dmaven.test.skipTests\=true -Dmaven.test.skip\=true -P release-mode
之后,您可以执行释放。

r6hnlfcb

r6hnlfcb5#

我通过简单地将configurationpreparationGoals添加到clean来避免运行verify目标:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <version>2.5.3</version>
  <configuration>
    <preparationGoals>clean</preparationGoals> <!-- See here -->
  </configuration>
</plugin>

字符串

xxe27gdn

xxe27gdn6#

使用以下参数跳过测试
第一个月

或者默认跳过

[...]
  <properties>
    <skipTests>true</skipTests>
  </properties>
  [...]

字符串

whhtz7ly

whhtz7ly7#

当使用gitflow-maven-plugin跳过测试时,在配置属性中使用skipTestProject:true(默认值为false),详细说明见文档:https://aleksandr-m.github.io/gitflow-maven-plugin/release-finish-mojo.html
举例说明:

<plugin>
        <groupId>com.amashchenko.maven.plugin</groupId>
        <artifactId>gitflow-maven-plugin</artifactId>
        <version>${gitflow.plugin.version}</version>
        <configuration>
            <skipTestProject>true</skipTestProject>
        </configuration>
    </plugin>

字符串

相关问题