2013-02-19 3 views
2

버그를 식별하기 위해 FindBugs 플러그인을 maven에 사용하고있는 2 개의 프로젝트가 있습니다. 또한 특정 버그를 무시하기 위해 @SuppressFBWarnings 주석을 사용하고 있습니다.maven findbugs suppressFBWarnings annotation을 무시합니다.

첫 번째 프로젝트에서는 pom.xml에 의존성을 추가했으며 findbugs 보고서와 주석은 모두 잘 작동했습니다. 두 번째 프로젝트에서는 보고서가 생성되지만 주석을 사용하지 않는 버그는 여전히 식별됩니다.

빌드 폴더의 내 컴퓨터에서 보고서를 생성하려면 mvn clean install site을 실행하십시오.

내가 언급 한 두 프로젝트는 각각 하위 디렉토리에 자신의 pom.xml 파일이있는 하위 프로젝트가 있으므로 상위 디렉토리에서 pom.xml도 갖습니다. 이 디렉토리 레이아웃은 두 주요 프로젝트 모두에서 동일하게 미러링됩니다.

<dependency> 
     <groupId>com.google.code.findbugs</groupId> 
     <artifactId>annotations</artifactId> 
     <version>2.0.1</version> 
</dependency> 

이것 : 또한 동일한 부모 POM에서 I는 <dependencyManagement><dependencies> 섹션이 추가

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>findbugs-maven-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <xmlOutput>true</xmlOutput> 
     <findbugsXmlOutput>true</findbugsXmlOutput> 
     <fork>true</fork> 
     <threshold>Low</threshold> 
     <effort>Min</effort> 
    </configuration> 
</plugin> 

: 여기

내가 <reporting> 태그하에 상위 리딩에 부가 된 XML이고 두 프로젝트 모두에서 동일합니다.

이제

, <dependencies>에서이 나는 실제로 @SuppressFBWarnings 주석을 사용하고, 해당 특정 하위 프로젝트에, 내가 가지고있는 하위 프로젝트 :

또한
<dependency> 
    <groupId>com.google.code.findbugs</groupId> 
    <artifactId>annotations</artifactId> 
    <version>2.0.1</version> 
</dependency> 

, 이것은 다른 작업에 반영됩니다 계획. 직접 복사하여 붙여 넣었습니다.

하나의 프로젝트가 완벽하게 작동하며 오탐 (false positive)을 성공적으로 억제 할 수 있습니다. 다른 프로젝트는 @SuppressFBWarnings 표식을 완전히 무시하며 수정하지 못하는 것 같습니다.

여기에 누락 된 것이 있습니까?

주석을 찾지 못한 경우 오류가 발생하지 않고 그냥 무시할 것이라고 생각합니까? 발견되지 않았 으면 어떻게 알 수 있습니까?

바라기를 이것은 간단한 수정입니다.

감사합니다.

답변

0

봅니다 플러그인 종속성에 artifcat 주석을 추가합니다 :

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>findbugs-maven-plugin</artifactId> 
    <version>2.3.2</version> 
    <configuration> 
     <xmlOutput>true</xmlOutput> 
     <findbugsXmlOutput>true</findbugsXmlOutput> 
     <fork>true</fork> 
     <threshold>Low</threshold> 
     <effort>Min</effort> 
    </configuration> 
    <dependencies> 
     <dependency> 
      <groupId>com.google.code.findbugs</groupId> 
      <artifactId>annotations</artifactId> 
      <version>2.0.1</version> 
     </dependency> 
    </dependencies> 
</plugin> 
+0

안녕 오마르, 답장을 보내 주셔서 감사합니다,하지만 난 것을하려고 할 때이 오류가 얻을 :'CVC-복잡한 type.2.4.a을 : 잘못된 내용 요소 '의존성'로 시작 발견 된이처럼 . '{ "http://maven.apache.org/POM/4.0.0":inherited,"http://maven.apache.org/POM/4.0.0" : reportSets} "중 하나가 필요합니다.' – eoinzy

+0

파일에 보이지 않는 문자가있을 수 있습니다. 텍스트 편집기 (notpad ++, instence)로 숨겨진 문자 표시 시도 –

+0

후속 작업을 잊어 버렸습니다. 기본적으로, 나는 SuppressFBWarnings 대신에 정상적인 findbugs'SuppressWarnings'을 사용하여 작동시키고 있습니다. 표준 'SuppressWarnings'주석과 findbugs 주석에 문제가 있다고 생각합니다. 아마도 JAR 문제와 결합되었을 것입니다. – eoinzy

2

@SuppressFBWarnings은 다음과 같아야 이유 버전 3의 주석을 도입 :

<dependency> 
    <groupId>com.google.code.findbugs</groupId> 
    <artifactId>annotations</artifactId> 
    <version>3.0.1</version> 
</dependency> 
0

를 확인 그 종속성은 종속성 태그 사이에 추가됩니다.

<dependencies> 
    <dependency> 
    <groupId>something</groupId> 
    <artifactId>something</artifactId> 
     <version>something</version> 
    </dependency> 
<dependencies> 
관련 문제