我正在用Maven碰到一个奇怪的边缘用例&好奇它为什么表现得如此。Maven插件依赖不能使用父pom属性
我定义的属性在我父项目像这样:
<properties>
<some.property.version>1.0.0.0</some.property.version>
</properties>
现在,在一个模块中,我设置了版本依赖于像这样一个插件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>bob</artifactId>
<version>1.0.0.0</version>
<dependencies>
<dependency>
<groupId>org.example</groupId>
<artifactId>example</artifactId>
<version>${some.property.version}</artifactId>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
这会导致Maven吐出一个错误:
[错误]'build.plugins.plugin [org.apache.maven.plugins:bob] .dependencies.dependency.version'for org.example:example:jar must be一个有效的版本,但是'$ {some.p roperty.version}”。 @ line 350,第16列
对我来说奇怪的是,如果我将被定义的属性放入模块本身,Maven编译就好了。这是一个错误?或者,模块的插件中是否存在对父pom属性可见性的限制?
第二个想法是,这可能是邮件列表中的最佳服务......稍后将通过来自Maven人员的反馈进行更新! – gordysc