我有以下排除过滤器来忽略所有R文件类:
的FindBugs - 排除-filter.xml
<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
<Match>
<Class name="~.*\.R\$.*"/>
</Match>
</FindBugsFilter>
当我将它用于FindBugs-IDEA插件时,它可以工作。
然而,当我将它用于FindBugs Gradle插件时,在这样的任务中:
的build.gradle
apply plugin: 'findbugs'
task myFindBugsTask(type: FindBugs) {
.....
excludeFilter = file("$project.rootDir/findbugs-exclude-filter.xml")
.....
}
我收到错误消息:Cannot read file specified for FindBugs 'excludeFilter' property:
。该报告仍然已成功生成,但过滤器未生成。
我已经尝试过我在互联网上找到的每个解决方案(其中大部分已经过时)并且我得到了相同的结果。
那是什么给出的?这是一个已知的错误?我是唯一一个体验过这种情况的人吗?
答案 0 :(得分:2)
如果有人遇到同样的问题,我找到了解决方法。概念是提交过滤的文件树。我的任务现在看起来像这样:
apply plugin: 'findbugs'
task myFindBugsTask(type: FindBugs) {
.....
FileTree tree = fileTree("$project.buildDir/intermediates/classes").exclude('**/*R$*.class')
classes = tree
.....
}
答案 1 :(得分:0)
这是正确的过滤器:
<Match>
<Class name="~.*\.R(\$.*)?" />
</Match>
这会攻击所有R
类和内部类。