SpotBugs Maven Plugin exclude a directory

2022-09-04 02:46:31

我使用SpotBugs Maven插件进行静态分析,我想从检查中排除目录。查看目标文档,似乎不可能以这种方式配置插件。我还检查了 SpotBugs 筛选器文件的文档。spotbugs:check

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

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

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


答案 1

可以使用 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> 标记的文档。有关如何指定 的名称的详细信息,请参阅有关 Java 元素名称匹配的部分。<Source>

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

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

笔记:

  • 还有一个标签。请参阅使用文档中标题为“指定要运行的 Bug 筛选器”的部分<includeFilterFile>

  • 此外,SpotBugs 还提供了其他几种方法来指定要包含或排除在检查中的代码。请参阅筛选器文件文档,了解 、、、 和标记。SourcePackageClassMethodLocalFieldType


答案 2

推荐