Tôi đang sử dụng POM gốc xác định plugin mà tôi không muốn chạy trong POM con. Làm thế nào tôi có thể vô hiệu hóa hoàn toàn các plugin trong pom con?
Ràng buộc: Tôi không thể thay đổi chính POM gốc.
Tôi đang sử dụng POM gốc xác định plugin mà tôi không muốn chạy trong POM con. Làm thế nào tôi có thể vô hiệu hóa hoàn toàn các plugin trong pom con?
Ràng buộc: Tôi không thể thay đổi chính POM gốc.
Câu trả lời:
Những điều sau đây hoạt động với tôi khi vô hiệu hóa Findbugs trong POM trẻ em:
<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>
Lưu ý: định nghĩa đầy đủ của plugin Findbugs nằm trong cha mẹ / siêu POM của chúng tôi, vì vậy nó sẽ kế thừa phiên bản và hơn thế nữa.
Trong Maven 3, bạn sẽ cần sử dụng:
<configuration>
<skip>true</skip>
</configuration>
cho các plugin.
<id>…</id>
một phần của POM cha mẹ, sau đó nó làm việc cho tôi.
<skip>
tham số.
Xem plugin có tham số cấu hình 'bỏ qua' không. Gần như tất cả đều làm. nếu có, chỉ cần thêm nó vào một khai báo ở trẻ:
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
Nếu không, sau đó sử dụng:
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<executions>
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
Chủ đề đã cũ, nhưng có lẽ ai đó vẫn quan tâm. Hình thức ngắn nhất tôi tìm thấy là cải thiện hơn nữa về ví dụ từ λlex và bmargulies. Thẻ thực thi sẽ trông như sau:
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase/>
</execution>
Tôi muốn nhấn mạnh 2 điểm:
Sau khi đăng bài tìm thấy nó đã có trong stackoverflow: Trong một dự án đa mô-đun Maven, làm cách nào tôi có thể vô hiệu hóa một plugin trong một đứa trẻ?
Tôi biết chủ đề này thực sự cũ nhưng giải pháp từ @Ivan Bondarenko đã giúp tôi trong tình huống của mình.
Tôi đã có những điều sau đây trong của tôi 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>
Những gì tôi muốn, là vô hiệu hóa việc thực hiện generate-citrus-war
cho một hồ sơ cụ thể và đây là giải pháp:
<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>