私のプロジェクトのPOM親ファイルには、このプロジェクトに役立ついくつかの構成を定義するプロファイルがあります(そのため、この親POMを削除できません)。
<profile>
<id>wls7</id>
...
<build>
<plugins>
<!-- use java 1.4 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<fork>true</fork>
<source>1.4</source>
<target>1.4</target>
<meminitial>128m</meminitial>
<maxmem>1024m</maxmem>
<executable>%${jdk14.executable}</executable>
</configuration>
</plugin>
</plugins>
</build>
...
</profile>
しかし、私のプロジェクトでは、テストクラスのコンパイルにjdk4の代わりにjdk5を使用するために、maven-compiler-pluginの設定をオーバーライドしたいだけです。
私がプロジェクトのPOMでこのセクションを作成したのはそのためです。
<profiles>
<profile>
<id>wls7</id>
<activation>
<property>
<name>jdk</name>
<value>4</value>
</property>
</activation>
<build>
<directory>target-1.4</directory>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<executions>
<execution>
<id>my-testCompile</id>
<phase>test-compile</phase>
<goals>
<goal>testCompile</goal>
</goals>
<configuration>
<fork>true</fork>
<executable>${jdk15.executable}</executable>
<compilerVersion>1.5</compilerVersion>
<source>1.5</source>
<target>1.5</target>
<verbose>true</verbose>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
...
</profiles>
そしてそれは機能していません...
私はPOMの通常のプラグインセクションの設定を上書きしようとしました(つまり、特定のプロファイルではなく、私のPOM全体に対して)。
何が問題でしょうか?
私の要件のいくつかを明確にするために:
- 親POMとその中に定義されているプロファイル(wls7)を削除したくありません(多くのプロパティ、構成などが必要なため)。これは私の会社のプロセスではありません。
- 親POMまたはその内部で定義されたプロファイルの複製に基づくソリューションは適切ではありません。
親POMの責任者が何かを変更した場合、私
はそれを自分で報告する必要があります。
これは単なる継承の問題(プロファイルの拡張またはオーバーライド、上位レベルのPOMからの構成)なので、Maven 2で可能になると思います。