内部依赖项的Maven版本控制

时间:2016-09-22 10:18:48

标签: java maven version versioning

假设我们有一个项目使用Maven并且有一些dependencies,这些项目是在同一家公司/团队中开发的,甚至是由同一个人开发的。很明显,当一些开发人员想要compile项目时,specified dependencies将从回购中获取并在本地下载(如果他们还没有)。

现在让我们假设以下情况:

开发人员无关心关于依赖关系和

  1. 依赖项的版本为x.x.x.SNAPSHOT => maven将每24小时从回购中提取最新版本(默认情况下)。 问题:如果此版本与您的项目不兼容,基本上,您甚至不知道发生了什么,因为您没有更改项目中的任何内容。这里唯一可能的解决方案是在本地编译和管理依赖项。

  2. 依赖项的版本是“x.x.x.y”=> maven将获取这个版本,而不是别的。因此,要更新此依赖项,我需要更改版本。 问题:似乎这意味着每次此依赖关系得到一些更改并且代码被推送到服务器时,必须更改版本。但这听起来很荒谬。

  3. 可能的解决方案:

    在这种情况下,似乎唯一可行的解​​决方案是手动处理internal dependencies(从repo获取源并在本地编译)。但是,这两个问题困扰着我:

    1. 此解决方案打破了应该获取所有依赖项的maven的整个想法。
    2. 此解决方案会给只想开始项目开发的开发人员带来困难,但不关心这些依赖关系(因为他们正在处理的项目部分中没有使用这些依赖关系)。
    3. 有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

您还可以通过让maven与您自己管理的网络回购协同工作来关注最新的稳定依赖关系。因此,您将确保所有工作人员都拥有所需版本的插件,框架等。我们的团队使用TeamCity服务器来构建工作组,.m2 / settings.xml也配置为与我们的TC服务器repo一起使用。团队领导正在控制所有版本。