如何将Maven正确用于版本控制



目前我正处于将ANT项目转移到Maven的过渡阶段,并在如何使项目版本控制正确工作方面苦苦挣扎。目前,我有大约30多个项目/模块,它们都相互依赖,所以一切都必须是最新版本才能正常工作。ANT很容易做到这一点,但当涉及到Maven时,我需要对所有其他发布的项目POM进行不断的更改,以允许他们接受这些新的更改。

我与其他几位开发人员进行了讨论,我们决定我们甚至可能不需要一个带有版本号的maven repo,我们只需要将所有内容都放在同一版本号,然后在本地或通过Jenkins进行构建,以更新我们的.m2文件夹。这听起来对我们的情况来说是正确的路线吗?我们在做这件事时错过了什么吗?

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

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

我们的开发人员经常遇到这个问题。更新一个版本的所有POM需要大量的手工工作。

我们将以多模块项目为目标,这似乎也很适合您。

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

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

不过,你应该注意到,你以这种方式将项目(模块(紧密地联系在一起,但我正确地理解了你,它们已经紧密地相互关联了。

最新更新