Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在版本控制中正确使用Maven?_Java_Git_Maven_Jenkins - Fatal编程技术网

Java 如何在版本控制中正确使用Maven?

Java 如何在版本控制中正确使用Maven?,java,git,maven,jenkins,Java,Git,Maven,Jenkins,目前,我正处于将ANT项目迁移到Maven的过渡期,并且正在努力解决如何使项目版本控制正常工作的问题。目前我有大约30多个项目/模块,它们相互依赖,因此所有内容都必须是最新版本才能正常工作。使用ANT很容易做到这一点,但当涉及到Maven时,我需要对所有其他发布的项目POM进行不断的更改,以允许他们接受这些新的更改 我和其他几个开发人员讨论过,我们决定甚至不需要有版本号的maven repo,我们只需要在本地或通过Jenkins进行构建,以更新我们的.m2文件夹。这听起来像是适合我们情况的正确路

目前,我正处于将ANT项目迁移到Maven的过渡期,并且正在努力解决如何使项目版本控制正常工作的问题。目前我有大约30多个项目/模块,它们相互依赖,因此所有内容都必须是最新版本才能正常工作。使用ANT很容易做到这一点,但当涉及到Maven时,我需要对所有其他发布的项目POM进行不断的更改,以允许他们接受这些新的更改

我和其他几个开发人员讨论过,我们决定甚至不需要有版本号的maven repo,我们只需要在本地或通过Jenkins进行构建,以更新我们的.m2文件夹。这听起来像是适合我们情况的正确路线吗?我们做这件事有什么遗漏吗

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


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

我们的开发人员一直在努力解决这个问题。为发布更新所有POM需要大量的手工工作

我们将针对多模块项目,这似乎也很适合您

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

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

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