如何使用 Maven 发布插件跳过集成测试

how to skip integration tests with maven release plugin

我想跳过集成测试,而 运行 使用命令

maven 发布插件
mvn -B -DskipITs release:prepare release:perform

这样好像不行。相同的选项 -DskipITs 适用于 mvn install/deploy。我不想使用 -Dmaven.test.skip=true 因为只需要忽略集成测试,而不是单元测试。实现此目标的最佳方法是什么?

编辑-Darguments=-DskipITs 适用于 release:prepare,但令人惊讶的是 NOT 适用于 release:perform。试过-Darguments=-Dmaven.test.skip=true,也不行。

试图在 pom 中为发布插件添加 <arguments>skipITs</arguments>,但它会忽略命令行中提供的所有其他 -Darguments。我无法在插件配置中配置所有内容,因为某些选项会即时使用环境变量。

您可以在 pm.xml 文件中添加一些设置。

   <plugin>
    <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.12.4</version>
      <configuration>
         <skipTests>true</skipTests>
      </configuration>
   </plugin>

使用 Maven Profiles.

将以下内容添加到您的 pom:

<profiles>
    <profile>
        <id>ItsReleaseTime</id>
        <build>
        <plugins>
        <build> 
            <plugins> 
               <plugin>          
                   <groupId>org.apache.maven.plugins</groupId> 
                   <artifactId>maven-surefire-plugin</artifactId>
                   <version>2.20</version>    
                   <configuration>
                        <excludes>    
                              <exclude>**/*IT.java</exclude> 
                        </excludes> 
                   </configuration> 
               </plugin>
            </plugins>       
        </build>
    </profile>
</profiles>

并调用命令:

mvn -B -P ItsReleaseTime release:prepare release:perform

根据 ,您似乎需要 -DskipITs-Darguments=-DskipITs。一种是跳过编译 IT,另一种是跳过 运行 IT。