Release Candidate 在 Maven 存储库中表现得像 SNAPSHOT

Posted

技术标签:

【中文标题】Release Candidate 在 Maven 存储库中表现得像 SNAPSHOT【英文标题】:Release Candidate behaving like SNAPSHOT in Maven repository 【发布时间】:2016-01-13 09:22:10 【问题描述】:

在开发中,我可以将工件的最新版本引用为 1.2.3-SNAPSHOT。现在我需要发布候选版本具有相同的行为,即我希望能够依赖最新的发布候选版本(开发人员还应该有一个程序将开发版本声明为发布候选版本)。

我不确定如何正确实施此行为。如果开发人员要求,我是否应该为候选版本使用额外的存储库并将开发版本移动到此存储库?或者我可以以某种方式定义“第二个快照列表”,例如 1.2.3-RC?

【问题讨论】:

你看过这个answer了吗? 类似 1.2.3-RC-SNAPSHOT 的行为是否像 SNAPSHOT,或者 SNAPSHOT 是否必须是完整的限定符(如 1.2.3-SNAPSHOT 中的)? 不,只对它进行特殊处理的快照,afaik 【参考方案1】:

你可以重新配置一些东西:

为依赖项使用版本范围 更改存储候选版本的存储库的 updatePolicy。请参阅https://maven.apache.org/settings.html (updatePolicy)。如果您将工件存储在 Maven 代理中,通常需要允许覆盖发布。

请记住,在多模块构建中,他们可能会在检测到构建失败之前上传模块(因为mvn deploy 是一个阶段而不是目标)。在开始在 maven 存储库中上传工件之前,您需要验证完整的构建是否正常。或者以某种方式将它们上演。

请记住,这肯定会阻止您的构建可重现。由于 RC 依赖项可能会在构建之间发生变化。您需要更改版本范围 - 这并不总是一个问题。范围可能适合您。

我有更好的经验让开发人员留在快照上,但让 CI 服务器在部署/发布之前为工件使用的依赖项设置一个明确的版本(例如使用版本插件)。

【讨论】:

以上是关于Release Candidate 在 Maven 存储库中表现得像 SNAPSHOT的主要内容,如果未能解决你的问题,请参考以下文章

如何安装Windows Phone SDK 7.1 Release Candidate (RC)

Mysql:Changes in MySQL 5.7.7 (2015-04-08, Release Candidate):The innodb_file_format default value wa

在 Git 中使用 maven-release-plugin

maven snapshot和release版本的区别

maven中snapshot快照库和release发布库的区别和作用

我可以在 maven-release 插件之后运行自定义 maven 插件吗?