maven test-jar的安装部署

Installation and deployment of maven test-jar

我在 Maven 中发现了很棒的 test-jar 工具:https://maven.apache.org/plugins/maven-jar-plugin/examples/create-test-jar.html

但也有可能一个项目需要使用另一个项目的test-jar。从 和实验来看,似乎使用 mvn install 不会将测试罐安装到本地 ~/.m2/repository。那么我机器上的一个项目如何使用不在同一个聚合 POM 中的另一个项目的测试 jar?

然而,从 Maven deploy not to upload test jar 看来,将项目部署到 Maven Central 实际上确实部署了测试 jar?所以我可以将它部署到 Nexus 但不能在本地安装?如果我将它部署到 Nexus,我使用 <type>test-jar</type> 依赖项的本地项目是否会在 Maven Central 上找到它?

事实证明 maven-jar-plugin 确实在本地 Maven 存储库 ~/.m2/repository/... 中安装了测试 jar(例如 foo-1.2.3-tests.jar)。精彩!

我的问题是我无意中将 maven-jar-plugin 配置在名为 release 的单独配置文件中。 (我在我的 POM 中复制并粘贴到了错误的位置。)这就是为什么测试 jar 在 mvn install 之后没有出现在我的本地存储库中,这就是为什么它后来突然出现(在我使用之后-P release一次测试),我第一次看的时候还以为我错过了

我将 maven-jar-plugin 移动到 <build> 部分,一切正常:使用 mvn install.

将测试 jar 放入本地 maven 存储库

在我的例子中,我为特定的构建配置文件设置了 maven.test.skip。 属性 实际上导致测试不是 compiled/installed,因此也阻止了它们的部署。解决方案是改为设置 skipTests 属性。