团队的集中本地Maven存储库

问题描述 投票:5回答:1

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

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

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

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

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

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

我如何在本地集中Maven?

java maven repository maven-3 local
1个回答
1
投票

首先:如果你有一个像依赖的依赖

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

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

话虽如此:拥有一个构建服务器通常是一个良好的想法,为构建提供稳定的环境。

附录:您无法共享Maven本地存储库。此存储库不是线程安全的,并且在同一本地存储库上同时运行两个构建可能会产生奇怪的影响(我从经验中说)。

© www.soinside.com 2019 - 2024. All rights reserved.