In un file genitore POM del mio progetto, ho un tale profilo che definisce alcune configurazioni utili per questo progetto (in modo da non poter sbarazzarmi di questo POM genitore):
<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>
Ma nel mio progetto vorrei solo sovrascrivere la configurazione di maven-compiler-plugin per utilizzare jdk5 invece di jdk4 per la compilazione di classi di test.
Ecco perché ho fatto questa sezione nel POM del mio progetto:
<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>
e non funziona ...
Ho anche provato a sovrascrivere la configurazione nelle normali sezioni dei plugin del mio POM (voglio dire, non per un profilo specifico ma per tutto il mio POM).
Quale potrebbe essere il problema ?
Per chiarire alcune delle mie esigenze:
- Non voglio sbarazzarmi del POM genitore e del profilo (wls7) definito al suo interno (poiché ho bisogno di molte e molte proprietà, configurazioni, ...) e questo non è il processo nella mia azienda.
- Una soluzione basata sulla duplicazione del POM genitore e / o del profilo definito al suo interno non è buona. Dato che se il responsabile del
genitore POM cambia qualcosa, dovrei
segnalarlo nel mio.
È solo una questione di ereditarietà (estendere o sovrascrivere un profilo, una configurazione da un POM di livello superiore) quindi penso che dovrebbe essere possibile con Maven 2.