ในไฟล์พาเรนต์ 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-compiler-plugin เพื่อใช้ 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 ผู้ปกครองเปลี่ยนแปลงบางสิ่งฉัน
จะต้องรายงานในของฉัน
มันเป็นเพียงเรื่องการสืบทอด (ขยายหรือแทนที่โปรไฟล์การกำหนดค่าจาก POM ระดับบน) ดังนั้นฉันคิดว่ามันน่าจะเป็นไปได้กับ Maven 2