ฉันกำลังใช้ POM แม่ที่กำหนดปลั๊กอินที่ฉันไม่ต้องการให้เรียกใช้ใน POM ลูก ฉันจะสามารถปิดการใช้งานปลั๊กอินใน pom เด็กสมบูรณ์หรือไม่
ข้อ จำกัด : ฉันไม่สามารถเปลี่ยน POM ของผู้ปกครองเองได้
ฉันกำลังใช้ POM แม่ที่กำหนดปลั๊กอินที่ฉันไม่ต้องการให้เรียกใช้ใน POM ลูก ฉันจะสามารถปิดการใช้งานปลั๊กอินใน pom เด็กสมบูรณ์หรือไม่
ข้อ จำกัด : ฉันไม่สามารถเปลี่ยน POM ของผู้ปกครองเองได้
คำตอบ:
งานต่อไปนี้สำหรับฉันเมื่อปิดใช้งาน Findbugs ใน POM เด็ก:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<executions>
<execution>
<id>ID_AS_IN_PARENT</id> <!-- id is necessary sometimes -->
<phase>none</phase>
</execution>
</executions>
</plugin>
หมายเหตุ: คำจำกัดความเต็มรูปแบบของปลั๊กอิน Findbugs อยู่ใน parent / super POM ของเราดังนั้นมันจะสืบทอดเวอร์ชันและอื่น ๆ
ใน Maven 3 คุณจะต้องใช้:
<configuration>
<skip>true</skip>
</configuration>
สำหรับปลั๊กอิน
<id>…</id>
ส่วนของ POM หลักจากนั้นก็ใช้งานได้สำหรับฉัน
<skip>
พารามิเตอร์
ดูว่าปลั๊กอินนั้นมีพารามิเตอร์การกำหนดค่า 'ข้าม' หรือไม่ เกือบทั้งหมดทำได้ ถ้าเป็นเช่นนั้นเพียงแค่เพิ่มลงในการประกาศในเด็ก:
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
ถ้าไม่ใช้ให้ใช้:
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<executions>
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
เธรดเก่า แต่อาจมีบางคนที่สนใจ รูปแบบที่สั้นที่สุดที่ฉันพบคือการปรับปรุงตัวอย่างจากλlexและ bmargulies แท็กการดำเนินการจะมีลักษณะดังนี้:
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase/>
</execution>
2 คะแนนฉันต้องการเน้น:
หลังจากโพสต์พบว่ามันมีอยู่แล้วใน stackoverflow: ในโครงการ Maven หลายโมดูลฉันจะปิดการใช้งานปลั๊กอินในเด็ก ๆ ได้อย่างไร?
ฉันรู้ว่ากระทู้นี้เก่ามาก แต่โซลูชันจาก @Ivan Bondarenko ช่วยฉันในสถานการณ์ของฉัน
pom.xml
ฉันมีต่อไปนี้ในของฉัน
<build>
...
<plugins>
<plugin>
<groupId>com.consol.citrus</groupId>
<artifactId>citrus-remote-maven-plugin</artifactId>
<version>${citrus.version}</version>
<executions>
<execution>
<id>generate-citrus-war</id>
<goals>
<goal>test-war</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
สิ่งที่ฉันต้องการคือการปิดการใช้งานการดำเนินการgenerate-citrus-war
สำหรับโปรไฟล์ที่เฉพาะเจาะจงและนี่คือทางออก:
<profile>
<id>it</id>
<build>
<plugins>
<plugin>
<groupId>com.consol.citrus</groupId>
<artifactId>citrus-remote-maven-plugin</artifactId>
<version>${citrus.version}</version>
<executions>
<!-- disable generating the war for this profile -->
<execution>
<id>generate-citrus-war</id>
<phase/>
</execution>
<!-- do something else -->
<execution>
...
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>