Trong một tệp cha mẹ POM của dự án của tôi không, tôi có một cấu hình xác định một số cấu hình hữu ích cho dự án này (để tôi có thể 't thoát khỏi cha mẹ này POM):Maven: Có thể ghi đè lên cấu hình của một plugin đã được xác định cho một cấu hình trong một phụ huynh 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>
Nhưng trong dự án của tôi tôi chỉ muốn ghi đè lên cấu hình của maven-biên dịch-plugin để sử dụng jdk5 thay vì jdk4 cho biên soạn thử các lớp học.
Đó là lý do tại sao tôi đã làm phần này trong POM của dự án của tôi:
<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 làm việc ...
Tôi thậm chí đã cố gắng để ghi đè lên cấu hình trong phần Plugin thường xuyên của POM của tôi (Tôi có nghĩa là, không cho một hồ sơ cụ thể nhưng đối với 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 để thoát khỏi cha mẹ POM và hồ sơ cá nhân (wls7) được xác định bên trong nó (kể từ khi tôi cần nhiều và nhiều tài sản, 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 nhân bản POM mẹ và/hoặc cấu hình được xác định bên trong nó không phải là tốt một. Vì nếu chịu trách nhiệm
POM phụ huynh thay đổi điều gì đó, tôi
sẽ phải báo cáo điều đó trong của tôi.
Đó chỉ là vấn đề thừa kế (mở rộng hoặc ghi đè cấu hình, cấu hình từ POM cấp cao) vì vậy tôi nghĩ có thể với maven2.
Làm thế nào là hồ sơ wls7 kích hoạt? –
Các cấu hình wls7 và wls10 đều là "activeByDefault" trong POM cha. Nhưng theo nhu cầu của khách hàng, chỉ có wls10 hoặc cả hai đều được xây dựng bởi tập lệnh (với tham số "-P") –