我们的开发人员团队使用Maven来构建软件。我们的计算机上有Maven本地存储库。问题在于,有时由两个不同的开发人员构建的构建会有所不同,因为构建的软件包包含所包含依赖项的不同版本。
当在POM.xml文件中未提及版本标签的依赖性时,会发生这种情况。例如:
temp_folder
在这种情况下,Maven获取本地安装的最新库。
为避免此问题,我们将Maven安装在一台计算机(我们称为Build服务器)上,我们团队的所有成员都在该计算机上进行构建。
这种情况下有更好的解决方案吗?
如何对Maven本地进行集中管理?
答案 0 :(得分:1)
首先:如果您具有
之类的依赖项<dependency>
<groupId>mylib-group</groupId>
<artifactId>mylib-artifact</artifactId>
</dependency>
Maven将不采用最新版本,但采用<dependencyManagement>
部分中定义的版本。这样一来,您在每台计算机上都会得到相同的结果(除非您使用的SNAPSHOT版本可能有所不同)。
说过:拥有稳定的构建环境通常是一个好主意。
附录:您可以不共享Maven本地存储库。该存储库不是线程安全的,并且在同一本地存储库上同时运行两个构建可能会产生奇怪的效果(我从经验中得知)。