团队的集中式本地 Maven 存储库



我们的开发团队使用Maven来构建软件。我们的计算机上有Maven本地存储库。问题在于,有时由两个不同的开发人员进行的构建不同,因为构建的包包含不同版本的包含依赖项。

当依赖项的 POM.xml 文件中未提及版本标记时,会发生这种情况。例如:

<dependency>
            <groupId>mylib-group</groupId>
            <artifactId>mylib-artifact</artifactId>
</dependency>

在这种情况下,Maven 会在本地安装最新的库。

为了避免这个问题,我们在一台计算机上安装了Maven(我们称之为构建服务器(,我们团队的所有成员都在该计算机上进行构建。

对于这种情况,有更好的解决方案吗?

如何拥有集中式 Maven 本地?

首先:如果你有一个依赖关系,比如

<dependency>
    <groupId>mylib-group</groupId>
    <artifactId>mylib-artifact</artifactId>
</dependency>

Maven 不会采用最新版本,而是采用<dependencyManagement>部分中定义的版本。因此,您可以在每台计算机上获得相同的结果(除非您的快照版本可能不同(。

话虽如此:拥有构建服务器通常是拥有稳定的构建环境的好主意。

附录:您不能共享 Maven 本地存储库。这个存储库不是线程安全的,在同一个本地存储库上同时运行两个构建可能会产生奇怪的效果(我根据经验说话(。

最新更新