2012-08-20 12 views
7

Tôi đang cố lọc ra các tệp được tạo ra khỏi kiểm tra tìm kiếm và tất cả những gì tôi đã thử dường như không hoạt động. Khá nhiều phần trong quá trình xây dựng của tôi Tôi tạo ra rất nhiều lớp học kết thúc trong một thư mục có tên là src/generated Tôi sẽ quan tâm đến việc lọc ra tất cả các lớp đó. Tôi đang sử dụng maven nhưng tôi không nghĩ rằng nó quan trọng.Findbugs loại trừ các tệp đã tạo

Cảm ơn bạn trước.

Trả lời

2

Nếu không biết bạn đã thử gì thì có một chút khó khăn để trợ giúp.

Đây là một đoạn mà chúng tôi sử dụng để bỏ qua một vài mẫu lỗi có trong mã do Avro tạo.

<FindBugsFilter> 
    <Match> 
    <!-- Avro generates redundant "implements" interface declarations --> 
    <Or> 
     <Package name="~com[.]foo[.]plugh[.]avro([.].*)?"  /> 
     <Package name="~com[.]foo[.]xyzzy[.]protocol([.].*)?" /> 
    </Or> 

    <Or> 
     <Bug pattern="RI_REDUNDANT_INTERFACES" /> 
     <Bug pattern="NM_CLASS_NAMING_CONVENTION" /> 
     <Bug pattern="REC_CATCH_EXCEPTION" /> 
    </Or> 
    </Match> 
<FindBugsFilter> 
+0

Cảm ơn Dave, Tôi có src chính/java thư mục/nguồn mà tôi OK để kiểm tra lỗi. Tôi cũng có thư mục nguồn src/generated/java được tạo trong khi tạo. Tôi muốn loại trừ mã được tạo ra từ các lỗi kiểm tra bởi vì được tạo ra nó nằm ngoài tầm kiểm soát của tôi. Hy vọng điều này sẽ làm rõ những gì tôi đang cố gắng đạt được. – Julian

+0

@Julian Tôi biết những gì bạn đang cố gắng làm, tôi không biết những gì bạn đã thử. Ở trên bỏ qua các lỗi được xác định cho các gói đã xác định. –

+0

Tôi không thể định vị các lớp để loại trừ dựa trên tên gói nhưng tôi có thể định vị chúng dựa trên thư mục mà chúng nằm. Đó là vấn đề chính của tôi. – Julian

0

Đây là cách sử dụng trình tìm kiếm Codehaus findbugs-maven-plugin. Bạn bao gồm các gói mà bạn muốn phân tích, thay vì loại trừ những gói bạn không muốn.

<reporting> 
    <plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>findbugs-maven-plugin</artifactId> 
     <version>2.5.2</version> 
     <configuration> 
      <onlyAnalyze>com.company.util.*,com.company.myapp.*</onlyAnalyze> 
     </configuration> 
    </plugin> 
    </plugins> 
</reporting> 
+0

Điều này sẽ vẫn tìm thấy lỗi trong các lớp được tạo ra, vì chúng được tạo ra trong cùng một gói. – Ben

+0

Có thể, có. Một số plugin tạo mã cho phép đặc tả tên gói. Tôi có một ứng dụng bằng cách sử dụng cxf-xjc-plugin thực hiện chính xác điều đó. Thay đổi tên gói và dễ dàng bỏ qua các lớp. Đây có thể không phải là một tùy chọn tùy thuộc vào công cụ được sử dụng. – user944849