如何在Maven构建过程中忽略SNAPSHOT依赖关系



我们尝试只使用发布版本构建模块。

我们配置为不使用来自settings.xml:远程存储库的SNAPSHOTS

<repositories>
<repository>
<id>public</id>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<url>http://nexus...

但是当运行mvn package时,我们得到Non-resolvable parent POM [...] Could not find artifact [...]:pom:0.1.2-SNAPSHOT

此错误与本地存储库中的maven-metadata-public.xml有关。Maven"知道"必须有一个0.1.2-SNAPSHOT:

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>***</groupId>
<artifactId>***</artifactId>
<versioning>
<latest>0.1.2-SNAPSHOT</latest>
<release>0.1.1</release>
<versions>
<version>0.1.1</version>
<version>0.1.2-SNAPSHOT</version>
</versions>
<lastUpdated>20181212082933</lastUpdated>
</versioning>
</metadata>

如何强制Maven使用release版本而不是latest版本

已尝试:versions:use-releasesversions:use-latest-releases

一个可能的解决方案是添加一个仅包含版本的Nexus组存储库。-但我们希望在客户端解决这个问题。-快照.enabled=false也是多余的。

虽然使用版本范围仍然是可能的,但现在已经不常见了。

您可以尝试在构建之前调用versions:resolve-ranges,以便将版本解析为具体版本。

最新更新