这个Maven范围依赖性错误是否有意义?

时间:2017-03-29 02:00:31

标签: maven

我正在使用" 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中(任何想法为什么?)

1 个答案:

答案 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 您看到这些版本之间没有区别。