11

我使用SpotBugs Maven 插件进行静态分析,我想从检查中排除一个目录。查看spotbugs:check 目标文档,似乎无法配置插件是这样的。我还检查了 SpotBugs过滤器文件的文档。

在 Apache Maven PMD 插件中,这可以通过使用excludeRoots参数来完成:

<excludeRoots>
  <excludeRoot>target</excludeRoot>
</excludeRoots>

是否可以从 SpotBugs 检查中排除目录?

4

1 回答 1

14

可以使用 SpotBugs 从检查中排除目录,尽管该方法与您为 PMD 描述的方法不同。这是一个两步过程:

  1. 首先创建一个 XML 过滤器文件,指定要排除的目录的条件。

  2. 然后,在pom.xml<excludeFilterFile>中使用可选设置引用该文件。不幸的是,该设置的文档非常简短。

举个简单的例子:

  1. 创建一个名为ignore.xml的过滤器文件,其中包含以下引用名为mydir的目录:

    <?xml version="1.0" encoding="UTF-8"?>
    <FindBugsFilter>
        <Match>
            <Source name="~mydir\..*"/>
        </Match>
    </FindBugsFilter>
    

    标签的文档<Source>这里。有关如何指定. _ _<Source>

  2. 然后在pom.xml中,在spotbugs-maven-plugin的规范中,包含一个<excludeFilterFile>标签,以便mydir被 SpotBugs 忽略:

    <configuration>
      <excludeFilterFile>ignore.xml</excludeFilterFile>
    </configuration>
    

笔记:

  • 还有一个<includeFilterFile>标签。请参阅使用文档中标题为“指定要运行哪些错误过滤器”的部分。

  • 除了Source,SpotBugs 还提供了几种其他方法来指定要包含或排除检查的代码。请参阅PackageClassMethodLocal和标记Field的过滤器文件文档。Type

于 2018-09-15T07:30:37.587 回答