【发布时间】:2014-05-06 10:45:51
【问题描述】:
我们有一个多模块 maven 项目,它有不同的平台可以运行,比如 JBoss 4 和 JBoss 7。我们指定 platform 属性,然后将其用作工件的分类器,并用于激活子模块中特定于平台的配置文件,例如:
<activation>
<property>
<name>platform</name>
<value>jboss71x</value>
</property>
</activation>
在这些配置文件中,除其他外,我们指定了所提供依赖项的版本。 例如。我们导入 jboss 父 pom:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-parent</artifactId>
<version>${dependencies.jbossas7.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
因此,当我们将属性指定为命令行参数 (-Dplatform=jboss71x) 时,它可以正常工作。
但是当属性在根 pom.xml 中的<properties> 部分设置时(我也尝试在父 pom 中设置它),看起来父 pom 的版本被遗漏了:
[ERROR] 'dependencies.dependency.version' for commons-lang:commons-lang:jar is missing. @ line 46, column 21
[ERROR] 'dependencies.dependency.version' for commons-beanutils:commons-beanutils:jar is missing. @ line 56, column 21
[ERROR] 'dependencies.dependency.version' for commons-collections:commons-collections:jar is missing. @ line 61, column 21
maven 版本最新:3.2.1。
为什么会发生这种情况,我们如何在 pom.xml 中指定这个属性值,而不是在命令行中?
【问题讨论】:
标签: maven maven-profiles