Trong tệp mẹ POM của dự án của tôi, tôi có một hồ sơ xác định một số cấu hình hữu ích cho dự án này (để tôi không thể loại bỏ POM mẹ này):
<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>
Nhưng trong dự án của tôi, tôi chỉ muốn ghi đè cấu hình của maven-compiler-plugin để sử dụng jdk5 thay vì jdk4 để biên dịch các lớp thử nghiệm.
Đó là lý do tại sao tôi thực hiện phần này trong POM của dự án của mình:
<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>
và nó không hoạt động ...
Tôi thậm chí đã cố gắng ghi đè cấu hình trong các phần plugin thông thường của POM của mình (ý tôi là, không phải cho một hồ sơ cụ thể mà cho toàn bộ POM của tôi).
Điều gì có thể là vấn đề ?
Để làm rõ một số yêu cầu của tôi:
- Tôi không muốn loại bỏ POM mẹ và hồ sơ (wls7) được xác định bên trong nó (vì tôi cần rất nhiều thuộc tính, cấu hình, ...) và đó không phải là quy trình trong công ty của tôi.
- Một giải pháp dựa trên việc sao chép POM mẹ và / hoặc hồ sơ được xác định bên trong nó không phải là một giải pháp tốt. Vì nếu trách nhiệm của
POM mẹ thay đổi điều gì đó, tôi
sẽ phải báo cáo điều đó cho tôi.
Đó chỉ là vấn đề kế thừa (mở rộng hoặc ghi đè một hồ sơ, một cấu hình từ POM cấp cao hơn) vì vậy tôi nghĩ rằng điều đó có thể xảy ra với Maven 2.