マルチモジュールの 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
) として指定すると、問題なく動作します。
しかし、プロパティが<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
Maven の最新バージョンは 3.2.1 です。
これが発生する理由と、コマンド ラインではなく pom.xml でこのプロパティ値を指定するにはどうすればよいでしょうか?