【发布时间】:2016-09-30 11:12:44
【问题描述】:
我在我的项目中使用 快照依赖项仅用于测试
<dependency>
<groupId>com.my-company</groupId>
<artifactId>my-test-library</artifactId>
<version>LATEST</version>
<scope>test</scope>
</dependency>
我知道使用LATEST 的风险,但这正是我想在测试中实现的目标。但是,当我调用 mvn release:prepare 时,此测试依赖项阻止了生产代码的发布,但出现异常:
[INFO] Checking dependencies and plugins for snapshots ...
There are still some remaining snapshot dependencies.
...
Caused by: org.apache.maven.shared.release.ReleaseFailureException: Can't release project due to non released dependencies :
com.my-company:my-test-library:jar:LATEST:test
in project 'My Project'
我的dependencyManagement:
<distributionManagement>
<repository>
<uniqueVersion>true</uniqueVersion>
<id>rep-releases</id>
<name>Release Repo</name>
<url>${url}</url>
</repository>
<snapshotRepository>
<uniqueVersion>true</uniqueVersion>
<id>rep-snapshots</id>
<name>Snapshots Repo</name>
<url>${url}</url>
</snapshotRepository>
</distributionManagement>
为什么测试代码与发布过程有关?如何继续发布并保留依赖项?
【问题讨论】:
-
你能否分享一下 pom.xml 中的
distributionManagement详细信息 -
永远不要在版本中使用
LATEST之类的东西...此外,如果您依赖未发布的测试代码,您将无法重现您的构建。这就是发布插件抱怨的原因...... -
@khmarbaise 正如我所写,我知道使用 LATEST 并且没有可重复构建的所有后果。我只是问为什么发布插件在尝试发布 PRODUCTION 代码时抱怨 TEST 代码。
-
@nullpointer
dependencyManagement已添加 -
它抱怨是可以理解的:如果使用仍在开发中的测试代码,则不能保证要发布的生产代码按预期正确测试。
标签: maven release maven-release-plugin