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

Posted

技术标签:

【中文标题】maven 的哪个插件更适合管理发布版本?【英文标题】:Which plugin of maven is better for manage release version? 【发布时间】:2019-10-30 17:24:58 【问题描述】:

例如: maven-release-plugin prepare perform 要求没有 SNAPSHOT 依赖项,这会破坏持续集成,以防在发布前没有被验证,相反,flatten-maven-plugin 只需要 -Drevision -Dchangelist scm:tag 标记发布版本而不验证 SNAPSHOT 依赖项。

【问题讨论】:

【参考方案1】:

在发布版本中包含 SNAPSHOT 依赖项总是一个坏主意。构建变得不可重现。

Maven 发布插件为您提供了一个彻底且经过深思熟虑的发布过程。关于它的某些方面有不同的意见,如果你不喜欢它们,你可以构建自己的方式,可能在你的构建服务器(Jenkins)而不是 Maven 中。

【讨论】:

...我无法控制添加的新依赖项(多个开发人员),这会导致发布被破坏,我必须撤消 maven 的prepare perform 所做的更改。 您可以在调用 maven 发布插件之前调用 versions:use-releases -DfailIfNotReplaced=true。如果存在 SNAPSHOT 依赖项且无法替换,则构建几乎会立​​即失败。 是的,是正确的。因为 CI 不友好,因为这个过程是手动的。 prepare perform 对于 CI 来说是丑陋的。 无论 CI 与否:您需要确保版本不是使用快照依赖项构建的。因此,如果其中包含快照依赖项,您需要一种或另一种方法来使构建失败。

以上是关于maven 的哪个插件更适合管理发布版本?的主要内容,如果未能解决你的问题,请参考以下文章

哪个 DatetimePicker 更适合 Internet Explorer

哪个版本的 C 更适合学生学习——C89/90 还是 C99?

gradle-release 插件 + maven 发布插件

使用 Spring Boot BOM 管理 Maven 插件版本

依赖管理中的依赖与 Maven 版本插件中的依赖

maven是啥意思