У батьківському файлі POM мого проекту у мене є такий профіль, який визначає деякі конфігурації, корисні для цього проекту (так що я не можу позбутися цього батьківського POM):
<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>
Але в своєму проекті я просто хотів би змінити конфігурацію плагін maven-компілятор, щоб використовувати jdk5 замість jdk4 для складання тестових класів.
Ось чому я зробив цей розділ у програмі POM свого проекту:
<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>
і це не працює ...
Я навіть намагався змінити конфігурацію в звичайних розділах плагінів моєї POM (я маю на увазі не для конкретного профілю, а для всього мого POM).
У чому може бути проблема?
Щоб уточнити деякі мої вимоги:
- Я не хочу позбуватися батьківського POM та профілю (wls7), визначеного всередині нього (оскільки мені потрібно багато і багато властивостей, конфігурацій, ...), і це не процес у моїй компанії.
- Рішення, засноване на дублюванні батьківського POM та / або профілю, визначеного всередині нього, не є хорошим. Оскільки, якщо відповідальний з
батьківського ПОМ щось змінить, мені
доведеться повідомити про це.
Це лише питання спадкування (розширити або змінити профіль, конфігурація з POM верхнього рівня), тому я думаю, що це можливо для Maven 2.