【发布时间】:2013-01-16 12:53:11
【问题描述】:
在进行快照/发布时,依赖项的编号/版本控制策略是什么?
一个由 15 名开发人员组成的团队,20 个 Maven 父项目 = 总共 70 多个 POM,包括子模块 POM。目前有很多依赖项,这 70 个中的大多数依赖于其中一个。
过去:
所有 POMS 都有 1.0.0-SNAPSHOT 作为它们的版本,并且在依赖项标签下。它通过 mvn deploy 上传到 Nexus 存储库。
现在:
我们最近开始做mvn release。所以所有 20 个父 POM 现在都是 1.0.1-SNAPSHOT 并发布版本 1.0.0 因为它们都位于 Nexus 中。所有 <dependencies> 标签现在都指向 1.0.0
问题:
开发人员不想指出发布版本。他们需要来自同行的前沿开发版本1.0.X-SNAPSHOT,无论它是否不稳定。
SCM 只想指向RELEASE 版本,因为他必须每周执行一次mvn release,这将失败,因为它指向快照版本。
问题:
现在我知道了 version plugin ,但问题是,我应该在 POM 中放入什么,以便双方都通过运行自己的 mvn versions: 命令版本感到满意。 POM 最好指向 SNAPSHOTS,以便 15 人满意,当 SCM 发布时,他可以运行 mvn versions:something,然后所有内容都转换为 RELEASE 版本,而不是 SNAPSHOTS。然后返回给开发者的 SNAPSHOTS。
【问题讨论】:
-
这是一个单一的大爆炸版本,还是所有单独的模块都独立发布? IOW SCM 运行了多少项目
mvn release:prepare release:perform以减少发布 -
20个项目一一发布。每个都有 2-15 个模块,如 projA-parent、projA-jar、projA-war、projA-Ear .. 所以发布插件修改的 POM 总数将是 100+,但我可以做 20 次迭代的解决方案,如果有一个..
标签: maven maven-3 nexus maven-release-plugin versions-maven-plugin