Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mvn 3.3.3可能不遵守父POM版本的属性解析_Java_Maven_Maven 3 - Fatal编程技术网

Java mvn 3.3.3可能不遵守父POM版本的属性解析

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

这看起来像是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-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>