Maven 发布插件:使用 SNAPSHOT 版本发布

Posted

技术标签:

【中文标题】Maven 发布插件:使用 SNAPSHOT 版本发布【英文标题】:Maven release plugin : Releasing with a SNAPSHOT version 【发布时间】:2011-06-18 20:58:21 【问题描述】:

我知道,发布具有 SNAPSHOT 依赖项的项目不是一个好习惯。

但是,我想知道,有什么方法可以让 maven 发布插件与 SNAPSHOT 依赖项一起发布?

是否有任何参数可以传递给 maven 发布插件以在发布时接受 SNAPSHOT 版本的依赖项?

喜欢

-Dallow.snapshots= true

【问题讨论】:

【参考方案1】:

您可以考虑将allowTimestampedSnapshots 选项用于release:prepare。这显然是为了处理 SNAPSHOT 依赖项不可避免的用例而添加的。

但只有在不可避免的情况下才应该这样做。除此之外,一些 Maven 存储库可以配置为自动删除旧的 SNAPSHOT 版本。如果发生这种情况,您发布的工件最终可能会导致永久损坏的依赖项。

【讨论】:

【参考方案2】:

你为什么想要那个?发布的版本应该永远不会改变。更新其中一个快照依赖项可能会破坏系统。我看到了两种方法:

您可以控制依赖项的源代码,在这种情况下,我建议您完成发布这些项目的过程,尽管这很乏味。

如果您不控制源代码,您仍然可以重命名二进制文件并将其手动上传到您的发布服务器。即使对于您控制的项目,您仍然可能会采用这种方法,尽管我强烈建议您不要这样做。

【讨论】:

我明白,但有没有办法在使用发布插件时规避这个问题?

以上是关于Maven 发布插件:使用 SNAPSHOT 版本发布的主要内容,如果未能解决你的问题,请参考以下文章

maven 的哪个插件更适合管理发布版本?

maven snapshot和release版本的区别

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

artifactory gradle 插件覆盖快照版本

为啥 Maven 版本中有 SNAPSHOT? [复制]

发布项目时可以在测试范围内拥有 SNAPSHOT 版本吗?