2017-03-29 29 views
0

我与“POM”依赖定义这种依赖性这个Maven范围依赖错误是否有意义?

<groupId>com.oracle.toplink</groupId> 
<artifactId>eclipselink</artifactId> 
<version>[12.2.1,12.2.2)</version> 

,在库中工作,的EclipseLink的Maven的元数据包含以下

<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-1-0 and 12.2.1-2-0但这些不会出现在的EclipseLink的Maven的元数据(任何想法,为什么?)

回答

0

如果真的这样做的Maven中的版本comparsion通过:

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

+0

你好,谢谢,回答。我忘了说Maven 2.2.1中存在这种行为。你认为这可能是一个错误,2.2.1不能正确比较这种版本的语法? –