我正在尝试使用findbugs插件生成报告,因为我写了下面提到的gradle脚本。我正在为报告设置目标文件夹但是没有生成相应的文件夹。所以,如何解决这个问题。
我可以使用导出按钮手动生成报告,但我想从gradle脚本生成。
是否可以从gradle脚本生成报告?
我的gradle版本 - 2.2.1
task findbugs(type: FindBugs) {
ignoreFailures = true
effort = "max"
reportLevel = "high"
classes = files("${project.buildDir}/findbugs")
source 'src'
include '**/*.java'
exclude '**/gen/**'
reports {
xml.enabled = true
xml {
destination "$project.buildDir/reports/findbugs/findbugs.xml"
xml.withMessages true
}
}
classpath = files()
}
答案 0 :(得分:11)
我设法用最新的gradle运行findbugs并使用以下gradle脚本片段:
apply plugin: 'findbugs'
task customFindbugs(type: FindBugs) {
ignoreFailures = true
effort = "default"
reportLevel = "medium"
classes = files("$project.buildDir/intermediates/classes")
excludeFilter = file("$rootProject.rootDir/config/findbugs/exclude.xml")
source = fileTree('src/main/java/')
classpath = files()
reports {
xml.enabled = false
xml.withMessages = true
html.enabled = !xml.isEnabled()
xml.destination "$project.buildDir/outputs/findbugs/findbugs-output.xml"
html.destination "$project.buildDir/outputs/findbugs/findbugs-output.html"
}
}
// UPDATE: renamed the task to customFindbugs and made it automatically be called when build is called
build.dependsOn customFindbugs
我的exclude.xml如下所示:
<FindBugsFilter>
<Match>
<Class name="~.*R\$.*"/>
</Match>
<Match>
<Class name="~.*Manifest\$.*"/>
</Match>
<Match>
<Class name="~.*_\$.*"/>
</Match>
</FindBugsFilter>
而最后一项检查用于省略AndroidAnnotations生成的类,您很可能不会使用此检查...
之后,我可以通过
运行任务./gradlew customFindbugs
或者仅仅通过
更新我的代码./gradlew build