【问题标题】:How to generate findbugs reports using gradle script?如何使用 gradle 脚本生成 findbugs 报告?
【发布时间】:2015-05-27 15:25:56
【问题描述】:

我正在尝试使用我在下面提到的 gradle 脚本中编写的 findbugs 插件生成报告。我正在为报告设置目标文件夹,但没有生成相应的文件夹。那么,如何解决这个问题。

我可以使用导出按钮手动生成报告,但我想从 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()
}

【问题讨论】:

    标签: android android-studio build.gradle checkstyle findbugs


    【解决方案1】:

    我设法使用以下 gradle 脚本 sn-p 使用最新的 gradle 运行 findbugs:

    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
    

    【讨论】:

    • 您的代码运行良好,如何在 build.gradle 中编写任务以生成 JavaDoc?
    • 抱歉,Boopathi,我不知道一个快速的答案。我还得做一些研究。我总是使用 Android Studio(工具 --> 生成 Javadoc)。顺便说一句,我更新了我的代码,以便您可以在调用 ./gradlew build 时隐式调用任务
    • build.dependsOn customFindbugs 有必要吗?我的意思是 ./gradlew build 触发 check 任务,这取决于 Findbugs。
    • @Hesam 在我的情况下,如果我不明确依赖构建,则不会生成任何内容。
    • 我收到错误:无法从 findbugs excludeFilter 中读取文件,即 exclude.xml
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多