【发布时间】:2015-01-10 09:44:00
【问题描述】:
我在 Maven 中遇到了一个奇怪的边缘用例,很好奇它为什么会这样。
我正在我的父项目中定义一个属性,如下所示:
<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 吐出一个错误:
[ERROR] 'build.plugins.plugin[org.apache.maven.plugins:bob].dependencies.dependency.version' for org.example:example:jar 必须是有效版本,但为 '${some.属性.版本}'。 @ 第 350 行,第 16 列
对我来说奇怪的是,如果我将定义的属性向下移动到模块本身,Maven 编译得很好。这是一个错误吗?还是对模块插件中父 pom 属性的可见性有限制?
【问题讨论】:
-
再想一想,这可能最好在邮件列表中提供...稍后将根据 Maven 人员的反馈进行更新!
标签: maven maven-3 maven-plugin