2011-12-19 2 views
12

Có ai quản lý để cấu hình findbugs Maven 3.x plugin để sản xuất cả một báo cáo xml và html? (Tôi muốn một xml cho Jenkins và một html cho kiểm tra trước khi một cam kết)Làm thế nào để tạo một báo cáo html cho findbugs với Maven 3.x

Tôi đã nhìn thấy rất nhiều tài liệu trên web về thiết lập này, nhưng hầu hết nó xuất hiện để được cho Maven 2.x, mà tôi biết được cấu hình khác nhau (khó chịu cấu hình 2.x là âm thầm bỏ qua bởi 3.x). Tôi mới làm quen với Maven, vì vậy tôi không chắc mình đang làm gì sai hay đang làm theo chỉ dẫn cũ.

pom My chứa sau:

</build> 
    </plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>findbugs-maven-plugin</artifactId> 
      <version>2.3.3</version> 
      <configuration> 
       <!-- findbugs:help -Ddetail=true for outputDirectory: 
        Location where generated html will be created. 
       --> 
       <outputDirectory>${project.build.directory}/findbugs</outputDirectory> 

       <xmlOutput>true</xmlOutput> 
       <findbugsXmlWithMessages>true</findbugsXmlWithMessages> 
       <xmlOutputDirectory>target/findbugs</xmlOutputDirectory> 
       <failOnError>false</failOnError> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

Trả lời

20

Các FindBugs-Plugin phải ở trong reportPlugins-Một phần của maven-site-plugin.

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-site-plugin</artifactId> 
     <configuration> 
     <reportPlugins> 
      <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>findbugs-maven-plugin</artifactId> 
      </plugin> 
     </reportPlugins> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 

Ngoài ra, báo cáo tìm kiếm chỉ được tạo khi nguồn được biên dịch trước khi chạy mvn site. Khi tạo trang web, tôi sử dụng mvn test site để tìm kiếm tạo báo cáo.

+0

Hoàn hảo. Chỉ một điều: tôi phải thêm 2.3.3 vào plugin bên trong để loại bỏ thông điệp cảnh báo maven. Cảm ơn – Stormcloud

+2

BTW, liệu quy tắc này có thể chạy như một phần của chu kỳ xây dựng cuộc sống không? Tôi muốn findbugs thất bại xây dựng nếu nó tìm thấy một cái gì đó nghiêm trọng (nó cũng sẽ cần phải tạo ra các báo cáo HTML để tôi có thể tìm ra những gì đã sai) – Stormcloud

+0

Theo plugin-trang web, có một findbugs: kiểm tra mục tiêu, rằng được liên kết với giai đoạn xác minh theo mặc định và cho phép bản dựng không thành công do bất kỳ lỗi nào. Nhưng sẽ chỉ có xml đầu ra từ mục tiêu này. – Corubba

3

Kiểm tra answer cho câu hỏi tương tự nơi tôi đề xuất sử dụng phép biến đổi XSLT được gửi bằng Findbugs để tạo báo cáo HTML trong khi thực thi lệnh mvn clean install.