dds*_*dds 6 maven maven-profiles
我们有一个多模块maven项目,它有不同的平台可以运行,比如JBoss 4和JBoss 7.我们指定platform属性,然后将其用作工件的分类器,以及激活特定于平台的配置文件.子模块,如:
<activation>
<property>
<name>platform</name>
<value>jboss71x</value>
</property>
</activation>
Run Code Online (Sandbox Code Playgroud)
在这些配置文件中,我们除其他外,还指定了提供的依赖项的版本.例如,我们导入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>
Run Code Online (Sandbox Code Playgroud)
因此,当我们将属性指定为命令行参数(-Dplatform=jboss71x)时,它可以正常工作.
但是当<properties>在pom.xml 中的部分中设置属性时(我也尝试在父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
Run Code Online (Sandbox Code Playgroud)
maven版本是最新的:3.2.1.
为什么会发生这种情况,我们如何在pom.xml中指定此属性值,而不是在命令行中?