使用版本范围声明项目的主POM解析为最新版本(包含SNAPSHOT)。有什么办法让它决定释放?
项目内的父POM声明:
<parent>
<groupId>my.company</groupId>
<artifactId>my-company-pom</artifactId>
<version>(,2.0.0]</version>
</parent>
父POM元数据文件
<metadata>
<groupId>my.company</groupId>
<artifactId>my-company-pom</artifactId>
<version>1.0.1</version>
<versioning>
<latest>1.3.0-SNAPSHOT</latest>
<release>1.2.0</release>
<versions>
<version>1.0.0</version>
<version>1.0.1-SNAPSHOT</version>
<version>1.0.1</version>
<version>1.1.0</version>
<version>1.2.0</version>
<version>1.3.0-SNAPSHOT</version>
</versions>
<lastUpdated>xxxxxxxxxxxx</lastUpdated>
</versioning>
</metadata>
为什么Maven将父POM版本解析为1.3.0-SNAPSHOT而不是1.2.0?
答案 0 :(得分:1)
正如您所看到的here,对于我而言,它是一个非常古老,众所周知且充满争议的错误,因为没有真正有效的解决方法,因此您最好不要在您的情况下使用版本范围。
答案 1 :(得分:0)
因为你设置1.3.0-SNAPSHOT
是最新的,在这一行(父pom元数据XML文件中的第6行)
<latest>1.3.0-SNAPSHOT</latest>
答案 2 :(得分:0)
您可以在自定义存储库定义中排除快照版本以解决此问题。
<repositories>
<repository>
<id>codehaus</id>
<name>codehaus</name>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<url>http://snapshots.maven.codehaus.org/maven2</url>
<layout>default</layout>
</repository>
</repositories>
Maven当时没有“看到”快照。当然,您必须调整设置(URL等)到您的仓库。