Dans un fichier parent POM de mon projet, j'ai un tel profil définissant certaines configurations utiles pour ce projet (afin que je ne puisse pas me débarrasser de ce POM parent):
<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>
Mais dans mon projet, je voudrais juste remplacer la configuration du maven-compiler-plugin afin d'utiliser jdk5 au lieu de jdk4 pour compiler des classes de test.
C'est pourquoi j'ai fait cette section dans le POM de mon projet:
<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>
et ça ne marche pas ...
J'ai même essayé de remplacer la configuration dans les sections de plug-in régulières de mon POM (je veux dire, pas pour un profil spécifique mais pour tout mon POM).
Quel pourrait être le problème ?
Pour clarifier certaines de mes exigences:
- Je ne veux pas me débarrasser du POM parent et du profil (wls7) défini à l'intérieur (car j'ai besoin de nombreuses et nombreuses propriétés, configurations, ...) et ce n'est pas le processus dans mon entreprise.
- Une solution basée sur la duplication du POM parent et / ou du profil défini à l'intérieur n'est pas une bonne solution. Puisque si le responsable du
POM parent change quelque chose, je
devrais le signaler dans le mien.
C'est juste une question d'héritage (étendre ou remplacer un profil, une configuration d'un POM de niveau supérieur) donc je pense que cela devrait être possible avec Maven 2.