Maven 具有快照测试依赖项的发布项目
我正在使用快照依赖项,仅用于项目中的测试Maven 具有快照测试依赖项的发布项目,maven,release,maven-release-plugin,Maven,Release,Maven Release Plugin,我正在使用快照依赖项,仅用于项目中的测试 <dependency> <groupId>com.my-company</groupId> <artifactId>my-test-library</artifactId> <version>LATEST</version> <scope>test</scope> &
<dependency>
<groupId>com.my-company</groupId>
<artifactId>my-test-library</artifactId>
<version>LATEST</version>
<scope>test</scope>
</dependency>
我的依赖关系管理
:
<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>
真的
代表发布
解除回购
${url}
真的
代表快照
快照回购
${url}
为什么测试代码与发布过程有关?如何继续发布并保持依赖关系不变?您所做的实际上违反了所有规则,您还应该首先发布测试依赖关系,然后发布,然后将项目版本切换到快照,并将测试范围的依赖关系恢复到快照 如果你真的,真的,真的必须做一些愚蠢的事情,那么你可以指定这个选项。但是,这将忽略在
pom.xml
中定义的任何SNAPSHOT
依赖项,这更糟糕
你已经被警告了。请自行承担风险,愿上帝保佑 如果您知道使用最新版本的所有后果。您可以使用以下命令:
mvn release:prepare -DignoreSnapshots=true
property
ignoreSnapshots=true
要允许快照依赖关系您是否也可以共享pom.xml中的distributionManagement
详细信息不要在版本中使用最新的之类的内容……此外,如果您依赖于未发布的测试代码,则无法重新生成。这就是发布插件抱怨的原因…@khmarbaise正如我所写的,我知道使用最新版本而没有可复制版本的所有后果。我只是想问为什么发布插件在试图发布生产代码时会抱怨测试代码。@nullpointerdependencyManagement
addedIt抱怨是可以理解的:如果使用的是仍在开发中的测试代码,则无法确保要发布的生产代码按照预期进行了正确测试。谢谢,我问题的一部分得到了回答。但第二个仍然是开放的-为什么发布插件会检查测试范围的依赖关系?它不应该只检查生产代码的依赖关系吗?因为创建一个发行版的整个要点是,在将来的任何给定时间点,您的代码都将具有完全可复制的状态。如果您有一个任何类型的快照
,并且在五个月内重建了代码,那么该测试依赖关系可能已经改变,您的标记代码可能不再工作,并且肯定不可复制。
mvn release:prepare -DignoreSnapshots=true