Java mvn 3.3.3可能不遵守父POM版本的属性解析
这看起来像是mvn中的一个回归错误,但我只是想确认我是否没有犯明显的错误 假设我的项目结构如下:Java mvn 3.3.3可能不遵守父POM版本的属性解析,java,maven,maven-3,Java,Maven,Maven 3,这看起来像是mvn中的一个回归错误,但我只是想确认我是否没有犯明显的错误 假设我的项目结构如下: foo-parent 0.0.1-SNAPSHOT -> foo-common 0.0.1-SNAPSHOT (parent is foo-parent 0.0.1-SNAPSHOT) -> foo-business 0.0.1-SNAPSHOT (parent is foo-parent 0.0.1-SNAPSHOT) 假设我在foo parent(0.0.1-SNAPS
foo-parent 0.0.1-SNAPSHOT
-> foo-common 0.0.1-SNAPSHOT (parent is foo-parent 0.0.1-SNAPSHOT)
-> foo-business 0.0.1-SNAPSHOT (parent is foo-parent 0.0.1-SNAPSHOT)
假设我在foo parent
(0.0.1-SNAPSHOT
)中定义了一个属性
然后我将这些工件安装到我的本地repo(用于bug复制的下一步)
现在,如果我将foo parent
的属性及其版本更改为0.0.2-SNAPSHOT
foo-parent 0.0.2-SNAPSHOT
-> foo-common 0.0.1-SNAPSHOT (parent is foo-parent 0.0.1-SNAPSHOT -- picked from local repo)
-> foo-business 0.0.1-SNAPSHOT (parent is foo-parent 0.0.1-SNAPSHOT -- picked from local repo)
在foo parent
(0.0.2-SNAPSHOT
)中定义为
但是,使用mvn-3.3.3
检查相同的内容时,它似乎没有使用来自父pom(0.0.1-SNAPSHOT
)的属性,而是使用相对路径(。/foo parent
)的属性
>mvn333帮助:有效的pom-f foo business/pom.xml | grep“foo.bar.version”
xyz
我认为这是一个回归错误。你们同意吗?我在发行说明中没有看到任何东西表明这是行为上的预期变化
此@
提前谢谢 正如@khmarbaise所指出的,这确实是一个问题。我能够确认我没有在apache-maven-3.3.9中看到错误行为。多亏了@khmarbaise,它看起来确实像一个回归错误;如果版本不同,则相对路径不应获得优先级。最好是这样。看起来你在描述:……我不是100%确定……但我在这里看到的问题是,你引用的父级版本与反应器中的版本不同,这导致通过本地存储库解决问题……因此我不确定这是否真的是回归或错误……你的
foo business
引用的父级版本不同0.0.2-SNAPSHOT
…@khmarbaise谢谢-我认为这个bug似乎是相关的,看起来他们在3.3.8(未发布)中修复了它。你知道有没有办法下载3.3.8来试用一下?一般来说,我们从哪里下载maven的未发布工件?我们需要从github签出并自己构建它吗?(它使用ant来构建-啊!)如果你想克隆,你可以这样做,或者你可以从中克隆,你可以使用Maven 3.X任何你想构建Maven的东西。你不需要ant…你可以使用它,但这不是必需的。谢谢@khmarbaise。我使用了3.3.9-SNAPSHOT(repo中的最新版本),它没有显示错误行为。然而,我确实看到3.3.8也有问题。我已经注意到了
>mvn help:effective-pom -f foo-business/pom.xml | grep "foo.bar.version"
<foo.bar.version>abc</foo.bar.version>
foo-parent 0.0.2-SNAPSHOT
-> foo-common 0.0.1-SNAPSHOT (parent is foo-parent 0.0.1-SNAPSHOT -- picked from local repo)
-> foo-business 0.0.1-SNAPSHOT (parent is foo-parent 0.0.1-SNAPSHOT -- picked from local repo)
<foo.bar.version>xyz</foo.bar.version>
>mvn help:effective-pom -f foo-business/pom.xml | grep "foo.bar.version"
<foo.bar.version>abc</foo.bar.version>
>mvn333 help:effective-pom -f foo-business/pom.xml | grep "foo.bar.version"
<foo.bar.version>xyz</foo.bar.version>