En un archivo principal POM de mi proyecto, tengo un perfil que define algunas configuraciones útiles para este proyecto (para que no pueda deshacerme de este POM principal):
<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>
Pero en mi proyecto solo me gustaría anular la configuración de maven-compiler-plugin para usar jdk5 en lugar de jdk4 para compilar clases de prueba.
Por eso hice esta sección en el POM de mi proyecto:
<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>
y no funciona ...
Incluso intenté anular la configuración en las secciones de complementos regulares de mi POM (quiero decir, no para un perfil específico sino para todo mi POM).
Cual podría ser el problema ?
Para aclarar algunos de mis requisitos:
- No quiero deshacerme del POM padre y el perfil (wls7) definido dentro de él (ya que necesito muchas y muchas propiedades, configuraciones, ...) y ese no es el proceso en mi empresa.
- Una solución basada en duplicar el POM padre y / o el perfil definido en su interior no es buena. Ya que si el responsable del
POM padre cambiara algo,
tendría que reportarlo en el mío.
Es solo una cuestión de herencia (extender o anular un perfil, una configuración de un POM de nivel superior), así que creo que debería ser posible con Maven 2.