En un archivo padre POM de mi proyecto, tengo un perfil que define algunas configuraciones útiles para este proyecto (para que pueda 't deshacerse de este padre POM):Maven: ¿Es posible anular la configuración de un complemento ya definido para un perfil en un POM padre
<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 yo sólo quisiera anular la configuración del experto-compilador-plugin con el fin de utilizar JDK5 en lugar de jdk4 para la compilación de prueba-clases.
Es por eso que 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 está funcionando ...
incluso trataron de anular la configuración en las secciones de plugin regulares de mi POM (Quiero decir, no para un perfil específico sino para todo mi POM).
¿Cuál podría ser el problema?
Para aclarar algunos de mis requisitos:
- no quiero para deshacerse del POM padres y el perfil (wls7) definido su interior (ya que necesito muchos y muchos propiedades, configuraciones, ...) y que no es el proceso en mi empresa .
- Una solución basada en la duplicación de el POM principal y/o el perfil definido en su interior no es bueno uno. Dado que si el responsable de
el POM padre cambia algo, I
tendría que informarlo en la mía.
Es solo una cuestión de herencia (ampliar o anular un perfil, una configuración de un POM de nivel superior), así que creo que debería ser posible con maven2.
cómo se activa el perfil wls7? –
Los perfiles wls7 y wls10 son ambos "activeByDefault" en el POM principal. Pero según las necesidades del cliente, solo el wls10 o ambos están construidos por scripts (con el parámetro "-P") –