无法使用 FindBugs 排除文件

Unable to exclude files using FindBugs

我有一个 gradle 项目,我想使用 Findbugs 从分析中排除一些文件 我的项目中有一些生成的代码,我想排除那些 classes

这是我的 build.gradle

中的 findbugs 设置
apply plugin: 'findbugs'
findbugs {
    toolVersion "3.0.1"
}

tasks.withType(FindBugs) {
    excludeFilter = rootProject.file('projectConfig/findbugs/excludeFilter.xml')

    reports {
        xml.enabled false
        html.enabled true
        html.stylesheet resources.text.fromFile('../projectConfig/findbugs/findbugs-style.xsl')
    }
}

excludeFilter.xml内容如下

<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
  <Match>
     <Class name="~.*\.Immutable*\.java" />
  </Match>
  <Match>
     <Class name="~.*\.GsonAdapters*\.java" />
  </Match> 
</FindBugsFilter>

我要排除的示例文件具有以下包和 class 个名称

com.tools.vo.event.GsonAdaptersGetEventDataBalancesVO   
com.tools.vo.event.ImmutableGetEventDataVO

如能帮助我排除这些模式,我们将不胜感激

谢谢 达米恩

这似乎是您的排除模式 (docs, regex) 的问题。尝试:

<Match>
  <Or>
    <Class name="~.*?\.Immutable.*" />
    <Class name="~.*?\.GsonAdapters.*" />
  </Or>
</Match>

详细地说,我将表达式的开头更改为不是 "greedy",并删除了 .java 部分,因为此表达式应用于 class 名称。此外,星号运算符始终应用于前一个元素,因此您遗漏了一些点。