这似乎是一个简单的问题,有很多答案,但没有一个真正有效。人们总是建议使用 -Dmaven.test.skip=true 或 -DskipTests 但这些选项完全跳过测试,并且它们永远不会移动到本地存储库,因此当我安装其他依赖于本地存储库中是否存在测试的模块时他们失败了。
我需要测试在与主类相同的组 id 和 Artifact id 下进行,仅具有不同的分类器和范围,这样我就可以在像这样的其他项目中引用它们
<dependency>
<groupId>myGroupId</groupId>
<artifactId>myArtificatId</artifactId>
<version>4.0-SNAPSHOT</version>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
最佳答案
我猜你想要这个:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
这将打包 -test
分类 jar。请注意,如果您使用-DskipTests
,surefire和failsafe将跳过测试的执行,而如果您使用-Dmaven.test.skip=true
测试将完全被忽略。被surefire、failsafe和编译器忽略。
关于java - 如何让maven在本地仓库中安装测试包而不运行它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23293852/