繁体   English   中英

如何正确使用 Maven 进行版本控制?

[英]How do I correctly use Maven with versioning?

目前,我正在将 ANT 项目转移到 Maven 并努力解决如何让项目版本控制正常工作。 目前我有大约 30 多个相互依赖的项目/模块,所以一切都必须是最新版本才能正常工作。 这很容易用 ANT 完成,但是当涉及到 Maven 时,我需要对所有其他已发布的项目 POM 进行不断的更改,以允许他们接受这些新的更改。

我与其他一些开发人员讨论过,我们认为我们甚至可能不需要带有版本号的 maven 存储库,我们只需将所有内容都使用相同的版本号并在本地构建或通过 Jenkins 来更新我们的.m2 文件夹。 这听起来像是适合我们情况的正确路线吗? 我们错过了什么吗?

我确实建议让我们的测试 Jenkins 部署到版本号为 1.0.Beta-SNAPSHOT 的存储库。 当我们的测试分支更新时,我们有 Jenkins 设置来构建。 这意味着我不必在本地编译该分支上的每个项目来更新 my.m2,我只需更改 POM 即可将所有这些 Beta-SNAPSHOT 版本拉到一个地方。 如果使用此版本号集推送和发布,我是否有一种不会影响发布的好方法? 如果我想使用我的本地版本,我只需将此版本号切换为 1.0.0,它不在 repo 中,而是我的 local.m2。

欢迎任何有关如何正确管理带有版本号的 maven 项目/模块的建议! 最好的方法是在发布 1 个项目/模块时减少更改每个 POM 的需要!

我们的开发人员在这个问题上挣扎了很多。 更新一个版本的所有 POM 需要大量的手动工作。

我们的目标是多模块项目,这似乎也很适合您。

如果你说一切都必须一直使用最新版本,我会把所有的项目都放在一个大型的多模块项目中。 这意味着您有一个(git)存储库,根目录中有一个主 POM,每个模块(子项目)都有一个目录,每个模块(子项目)都有自己的 POM 引用主 POM 作为父级。

然后您可以在父节点上运行mvn clean install并构建具有一致版本号的所有模块。 因此,发布只是一个大型构建。

但是,您应该注意,您以这种方式将项目(模块)紧密联系在一起,但我理解正确,它们已经紧密相关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM