我在Maven发现了很棒的test-jar
设施:https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.html
但是可能会发生一个项目需要使用另一个项目的测试jar。从https://stackoverflow.com/a/6469256/421049和实验开始,似乎使用mvn install
不会将测试jar安装到本地~/.m2/repository
。那么我的机器上的一个项目如何使用不在同一聚合POM中的另一个项目的测试罐?
然而从Maven deploy not to upload test jar开始,部署到Maven Central的项目确实会部署测试jar?所以我可以将它部署到Nexus但不在本地安装它?如果我将它部署到Nexus,我的本地项目是否会使用<type>test-jar</type>
的依赖关系在Maven Central上找到它?
答案 0 :(得分:0)
事实证明,maven-jar-plugin
确实在本地Maven存储库foo-1.2.3-tests.jar
中安装了测试jar(例如~/.m2/repository/...
)。精彩!
我的问题是,我无意中将maven-jar-plugin
配置为名为release
的单独配置文件。 (我已经复制并粘贴到我的POM中的错误位置。)这就是为什么测试罐在mvn install
之后没有出现在我的本地存储库中的原因,这就是为什么为什么它突然出现(我在测试中使用-P release
之后),我认为我第一次看时就错过了它。
我将maven-jar-plugin
移到<build>
部分,一切正常:使用mvn install
将测试jar放入本地maven存储库。
答案 1 :(得分:0)
就我而言,我为特定构建配置文件设置了 maven.test.skip
。该属性实际上会导致测试不被编译/安装,从而也阻止了它们的部署。解决方案是改为设置 skipTests
属性。