2011-10-19 24 views

Trả lời

122

Các công trình sau đây đối với tôi khi tắt FindBugs trong một POM con:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>findbugs-maven-plugin</artifactId> 
    <executions> 
     <execution> 
      <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à tiện ích bổ sung.

Trong Maven 3, bạn sẽ cần phải sử dụng:

<configuration> 
     <skip>true</skip> 
</configuration> 

cho các plugin.

+5

Trong khi điều này là" đúng "tức là nó hoạt động cần lưu ý rằng đó là một tính năng không xác định (hoặc ít nhất _undocumented_). Không có giai đoạn chính thức nào được gọi là 'không'. Vì vậy, bạn cũng có thể đặt 'foo' ở đó. –

+1

Đối với tôi trong Maven 3, điều này không hiệu quả. true như bmargulies đề xuất công trình – mibutec

+1

Tôi đã cập nhật câu trả lời để bao gồm Maven 3. –

38

Xem plugin có thông số cấu hình 'bỏ qua' hay không. Gần như tất cả đều làm. nếu có, chỉ cần thêm nó vào một tuyên bố ở trẻ em:

<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> 
+4

thử cả hai lựa chọn nhưng họ không làm việc. – tobiasbayer

+0

Cách đặt tên plugin bạn đang làm việc và chạy trợ giúp: hiệu quả để xem liệu bạn có thực sự thực hiện đúng hay không. – bmargulies

+1

Ngoài ra, hãy tìm các plugin bổ sung so với pluginManagement. Sau này ghi đè lên trước đây. – bmargulies

19

Chủ đề cũ, nhưng có thể 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í dụ từ λlex và bmargulies. Thẻ thực hiện sẽ như thế nào:

<execution> 
    <id>TheNameOfTheRelevantExecution</id> 
    <phase/> 
</execution> 

2 điểm tôi muốn nhấn mạnh:

  1. pha được thiết lập để không có gì, mà có vẻ ít hacky hơn 'không', mặc dù vẫn còn một hack.
  2. id phải giống với thực thi bạn muốn ghi đè. Nếu bạn không chỉ định id để thực hiện, Maven sẽ làm điều đó một cách ngầm định (theo cách mà bạn không mong đợi một cách trực giác).

Sau khi đăng tìm thấy nó đã nằm trong stackoverflow: In a Maven multi-module project, how can I disable a plugin in one child?

+1

Đối với bản ghi: ID thực thi mặc định tuân theo các quy tắc đơn giản được đưa ra trong câu trả lời này: http://stackoverflow.com/a/34599117/7641 –

+1

Cần lưu ý rằng giải pháp này thực sự ** vô hiệu hóa ** (dưới dạng OP yêu cầu) plugin (cho ID thực thi đã cho) thay vì dựa vào tùy chọn "bỏ qua" của plugin cụ thể. – Zero3

Các vấn đề liên quan