java - Team 的集中式本地 Maven 存储库

标签 java maven repository maven-3 local

我们的开发团队使用 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> 中定义的版本部分。因此,您在每台计算机上都会得到相同的结果(除非您有可能不同的 SNAPSHOT 版本)。

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

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

关于java - Team 的集中式本地 Maven 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55514117/

相关文章:

java - 如何在 Java (Android) 中使用 SimpleDateFormat 解析 "GMT+hours:minutes"或 "GMT-hours:minutes"

启动简单 Struts2 应用程序时的 java.lang.ClassNotFoundException : org. apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

repository - 每个分支的任务与 perforce

具有 HDFS 文件读/写的 Java

java - 有没有更有效的方法来编写以下质数代码?

xml - Maven 构建失败,Liquibase : cvc-elt. 1 找不到元素声明

java - 在java中创建可配置对象存储库的最佳方法是什么?

java - 如何对空的 Optional 执行 null 检查

java - 测试SessionFactory是否有效

java - Maven:是否可以在另一个项目的编译范围中包含一个测试 jar