安装和部署maven测试罐

时间:2017-10-25 23:39:24

标签: maven unit-testing maven-central

我在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上找到它?

2 个答案:

答案 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 属性。