Maven版本控制配置

时间:2017-07-21 07:09:02

标签: java maven build

我有以下构建: 1.0.0-9,1.0.0-10,1.0.0-11,1.0.0-12等

我已将我的依赖项配置为: 的 [1.0.0,)

这意味着它应该使用现有版本的最新版本(ofc以1.0.0开头),但不是使用1.0.0-12而是使用1.0.0-9。我认为这是因为9比1更重要。

首先,我想强迫maven真正使用我的最新版本。

我也可以拥有 1.0.0-LOCAL 版本(这是开发人员PC上的本地版本)。我想强制maven使用1.0.0-LOCAL而不是任何其他版本(如果可用的话)。

我不确切知道如何使用 settings.xml 配置文件来完成这些操作,该配置文件位于构建计算机上以及开发人员的PC上。

如果我有其他任何方式可以做到这一点,请告诉我。

祝你有个美好的一天,       Arnold Robert Turdean

更新: 原来,Maven Version Range - downloads all the available versions not just the latest one是最初的问题。

2 个答案:

答案 0 :(得分:1)

你使用哪个maven版本?从Maven的角度来看,所有给定版本都是发布版本?问题是,使用SNAPSHOT版本是否更好?

此外,要检查工件的排序是否正确或是否正常工作,可以使用以下方法检查:

java -jar apache-maven-3.3.9\lib\maven-artifact-3.3.9.jar 1.0.0-12 1.0.0-9

显示由Maven解析的参数(以规范形式)和比较结果:

1. 1.0.0-12 == 1-12
   1.0.0-12 > 1.0.0-9
2. 1.0.0-9 == 1-9

正确显示1.0.0-12大于1.0.0-9。所以问题是你是否正在使用存储库管理器等?你只做mvn install吗?

我不明白你对'1.0.0-LOCAL'的陈述?

除此之外,我建议防止使用版本范围,因为它们会使您无法重现。

答案 1 :(得分:-1)

在maven中,依赖层次结构非常重要。确保您之前没有添加其他依赖项,并将其添加到其他pom中。

(在层次结构中,maven关心最新的依赖关系。)依赖性1.0.0-LOCAL必须是最新的。

我建议你,虽然本地开发时间使用泛型-SNAPSHOT,但在开始打包时请使用数字。