Dalam file induk POM dari proyek saya, saya memiliki profil yang mendefinisikan beberapa konfigurasi yang berguna untuk proyek ini (sehingga saya tidak dapat menyingkirkan POM induk ini):
<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>
Tetapi dalam proyek saya, saya hanya ingin mengganti konfigurasi maven-compiler-plugin untuk menggunakan jdk5 dan bukan jdk4 untuk mengompilasi kelas uji.
Itulah mengapa saya melakukan bagian ini di POM proyek saya:
<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>
dan itu tidak bekerja ...
Saya bahkan mencoba menimpa konfigurasi di bagian plugin reguler POM saya (maksud saya, bukan untuk profil tertentu tetapi untuk keseluruhan POM saya).
Apa masalahnya?
Untuk memperjelas beberapa persyaratan saya:
- Saya tidak ingin menyingkirkan POM induk dan profil (wls7) yang ditentukan di dalamnya (karena saya memerlukan banyak dan banyak properti, konfigurasi, ...) dan itu bukan proses di perusahaan saya.
- Solusi yang didasarkan pada penggandaan POM induk dan / atau profil yang ditentukan di dalamnya bukanlah solusi yang baik. Karena jika penanggung jawab
Badan POM induk mengubah sesuatu, saya
harus melaporkannya di milik saya.
Ini hanya masalah warisan (memperpanjang atau menimpa profil, konfigurasi dari POM tingkat atas) jadi saya pikir itu harus dimungkinkan dengan Maven 2.