我正在使用" pom"定义此依赖项的依赖项
<groupId>com.oracle.toplink</groupId>
<artifactId>eclipselink</artifactId>
<version>[12.2.1,12.2.2)</version>
在存储库中,eclipselink的maven-metadata包含以下内容
<metadata>
<groupId>com.oracle.toplink</groupId>
<artifactId>eclipselink</artifactId>
<version>12.1.3-0-0</version>
<versioning>
<latest>12.2.1-0-0</latest>
<release>12.2.1-0-0</release>
<versions>
<version>12.1.2-0-0</version>
<version>12.1.3-0-0</version>
<version>12.2.1-0-0</version>
</versions>
<lastUpdated>20161123223550</lastUpdated>
</versioning>
</metadata>
但是Maven抛出了这个错误
Couldn't find a version in [12.1.2-0-0, 12.1.3-0-0, 12.2.1-0-0] to match range [12.2.1,12.2.2)
如果我没错,Maven应该与12.2.1-0-0
版本匹配。
为什么会这样?
此外,存储库12.2.1-1-0 and 12.2.1-2-0
中还有两个版本,但这些版本没有出现在eclipselink的maven-metadata中(任何想法为什么?)
答案 0 :(得分:0)
如果真的通过以下方式对Maven中的版本进行比较:
$ java -jar apache-maven-3.3.9\lib\apache-artifact-3.3.9.jar 12.2.1-1-0 12.2.1
Display parameters as parsed by Maven (in canonical form) and comparison result:
1. 12.2.1-1-0 == 12.2.1-1
12.2.1-1-0 > 12.2.1
2. 12.2.1 == 12.2.1
你看到12.2.1 is something different than
12.2.1-1-0`
此外,如果您使用12.2.1-0-0
并通过以下方式将其与12.2.1
进行比较:
$ java -jar apache-maven-3.3.9\lib\apache-artifact-3.3.9.jar 12.2.1-0-0 12.2.1
Display parameters as parsed by Maven (in canonical form) and comparison result:
1. 12.2.1-0-0 == 12.2.1
12.2.1-0-0 == 12.2.1
2. 12.2.1 == 12.2.1
您看到这些版本之间没有区别。