Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven版本控制配置_Java_Maven_Build - Fatal编程技术网

Java Maven版本控制配置

Java Maven版本控制配置,java,maven,build,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-LOCALbuild(这是开发人员PC上的本地版本)。我想强制maven使用1.0.0-LOCAL,而不是任何其他版本(如果可用) 我不知道如何才能做到这一

我有如下构建: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-LOCALbuild(这是开发人员PC上的本地版本)。我想强制maven使用1.0.0-LOCAL,而不是任何其他版本(如果可用)

我不知道如何才能做到这一点,可能是通过构建机器和开发人员PC上的settings.xml配置文件

如果我有其他的方法,请告诉我

祝你过得愉快, 阿诺德·罗伯特·图丁

更新:
原来问题就出在这个版本上。

您使用哪个maven版本?从maven的角度来看,所有这些给定的版本都是发行版?问题是使用快照版本是否更好

此外,要检查工件的顺序是否正确,或者是否按照预期工作,可以使用以下方法进行检查:

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

我不明白的是你关于“1.0.0-LOCAL”的说法


除此之外,我建议防止使用版本范围,因为它们会使您构建不可复制。

在maven中,依赖关系层次结构非常重要。确保您没有以前添加到其他pom中的其他依赖关系

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


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

是否有合理完整且最新的文档解释版本号的顺序?直到今天,我还认为只有前3个数字(major.minor.bugfix)是按语义顺序排列的,其余的按字母顺序排列。从Maven 3开始,它已被更改。请参阅,但此提示提醒我将其集成到Maven官方网站中…谢谢,您帮助我发现问题不是版本号,而是另一个Maven行为()关于你说的是什么行为?Maven不关心最新的依赖项(取决于你使用它们时版本范围的外观),它会选择最接近的依赖项,并采用该版本…特别是如果你考虑一个具有多个级别的依赖项树。。。