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 发布插件