如果在另一个仓库中,Maven不会解析父母的修订

时间:2019-08-20 15:43:36

标签: maven maven-3

在以下情况下,我正在使用mvn 3.6.1,并且我无法正确解决$ {revision}:

父回购(单独回购): top / pom.xml:

<groupId>com.x</groupId>
<artifactId>top</artifactId>
<version>${revision}</version>

mvn -Drevision = 1.0.0 clean deploy#在本地.m2中可以很好地安装,并且可以很好地部署到Nexus

派生子回购(单独回购)

<groupId>com.x</groupId>
<artifactId>child</artifactId>
<version>${revision}</version>

<parent>
    <groupId>com.x</groupId>
    <artifactId>top</artifactId>
    <version>${revision}</version> <!-- This is not resolving -->
    <relativePath/>
</parent>

mvn -Drevision = 1.0.0全新安装 引发错误无法解析的父pom错误:

Non-resolvable parent POM for com.x:child:${revision}: Could not transfer artifact com.x:top:pom:${revision} from/to nexus  ($nexusUrl): Failed to transfer file ${nexusUrl}/com/x/top/$%7Brevision%7D/top-$%7Brevision%7D.pom with status code 400 and 'parent.relativePath' points at no local POM @ line 12, column 1

,因为它实际上是在寻找“ com.x:top:pom:$ {revision}”而不是thevue。即使删除标签,也会发生相同的错误。

如果我将以下父级与本地relativePath一起使用,则效果很好:

<parent>
    <groupId>com.x</groupId>
    <artifactId>top</artifactId>
    <version>${revision}</version>
    <relativePath>../top</relativePath>
</parent>

总而言之,如果使用不带relativePath的parent:$ {revision},则mvn始终尝试按字面解析$ {revision},而不是提供的-D值。

我还尝试了像mvn -Dparent.revision = 1.0.0这样的变体,也没有起作用。

任何指针表示赞赏!

0 个答案:

没有答案