Java 将Maven配置为在没有任何更改的情况下不运行测试
我们有一个由许多模块组成的大型应用程序,完整构建(带有集成测试)需要长达一小时的时间。 有没有一种方法可以配置maven,让它跳过模块(甚至类)上的测试,而模块(甚至类)上没有任何更改?Java 将Maven配置为在没有任何更改的情况下不运行测试,java,maven,maven-2,maven-3,maven-plugin,Java,Maven,Maven 2,Maven 3,Maven Plugin,我们有一个由许多模块组成的大型应用程序,完整构建(带有集成测试)需要长达一小时的时间。 有没有一种方法可以配置maven,让它跳过模块(甚至类)上的测试,而模块(甚至类)上没有任何更改? 可能存在一些插件,或者可以编写此插件?要跳过模块中的测试,您可以将其添加到此模块的pom.xml中: <project> [...] <build> <plugins> <plugin> <groupId>org.apache.ma
可能存在一些插件,或者可以编写此插件?要跳过模块中的测试,您可以将其添加到此模块的pom.xml中:
<project>
[...]
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</build>
[...]
[...]
org.apache.maven.plugins
maven surefire插件
2.4.2
真的
[...]
或者在使用命令行时使用模块pom.xml中的配置文件:
mvn -q clean package -DskipTests
我自己也没有尝试过,但最好的方法似乎是这里描述的maven增量构建插件:我很高兴听到你在这方面的成功(因为我们在Git上维护了多个模块项目,所以所有不同的分支都建立在同一个詹金斯实例上,从而导致构建场景需要花费24个小时,我也考虑了一下。)。我结合使用sed/awk和git diff--name only来获取自修订版以来已更改的模块,然后执行mvn-amd-pl modulenames clean installMaven并不真正适用于此。像Bazel这样的构建工具就是。您只能在受影响的部分上构建和运行测试,并且可以确定粒度您自己。此命令始终跳过测试。OP只希望在给定子模块中自上次生成以来未发生任何更改的情况下跳过测试。这将始终跳过测试。问题是在未发生任何更改的情况下跳过测试。