maven忽略了findbugs suppressFBWarnings注释

时间:2013-02-19 17:47:13

标签: maven maven-plugin findbugs

我有2个项目,我使用FindBugs中的maven插件来识别错误。我也使用@SuppressFBWarnings注释来忽略特定的错误。

在第一个项目中,我将依赖项添加到pom.xml中,并且findbugs报告和注释都正常工作。使用第二个项目,生成报告,但它仍然可以识别我使用注释抑制的错误。

我运行mvn clean install site以在我的机器上的构建文件夹中生成报告。

我提到的两个项目中的每个项目都在子目录中有自己的pom.xml文件的子项目,因此在父目录中,我还有一个pom.xml。在两个主项目中,此目录布局的镜像方式相同。

以下是我在<reporting>标记下添加到父poms的XML:

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

此外,在同一个父pom中,我将其添加到<dependencyManagement><dependencies>部分:

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

这两个主要项目都是相同的。

现在,在我实际使用@SuppressFBWarnings注释的子项目中,并且仅在该特定子项目中,我在<dependencies>下有这个:

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

此外,这在另一个工作项目中得到了反映。我直接复制并粘贴了。

一个项目完美无缺,我可以成功地抑制误报。另一个项目完全忽略了@SuppressFBWarnings anotation,我似乎无法修复它。

这里有什么我想念的吗?

我认为如果找不到注释,而不是给出错误,它会忽略它吗?如何判断它是否未被发现?

希望这是一个简单的解决方法。

感谢。

3 个答案:

答案 0 :(得分:2)

@SuppressFBWarnings是在版本3中使用注释引入的。这就是为什么它应该是这样的:

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

答案 1 :(得分:0)

尝试向插件依赖项添加注释工件:

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

答案 2 :(得分:0)

确保添加的依赖项位于依赖项标记之间。 像这样:

<dependencies>
  <dependency>
     <groupId>something</groupId>
     <artifactId>something</artifactId>
      <version>something</version>
  </dependency>
<dependencies>