在Gradle中使用CodeNarc生成多个报告类型

在Gradle中使用CodeNarc生成多个报告类型,gradle,codenarc,Gradle,Codenarc,我想在Gradle的CodeNarc中生成HTML和控制台报告 我的build.gradle: apply plugin: 'codenarc' ... codenarc { toolVersion = '0.24.1' configFile = file('config/codenarc/codenarc.groovy') reportFormat = 'html' } 这很好,但我也希望在控制台上显示报告,因为现在只有指向HTML的链接显示在那个里。如何请求多个报告

我想在Gradle的CodeNarc中生成HTML和控制台报告

我的
build.gradle

apply plugin: 'codenarc'
...
codenarc {
    toolVersion = '0.24.1'
    configFile = file('config/codenarc/codenarc.groovy')
    reportFormat = 'html'
}

这很好,但我也希望在控制台上显示报告,因为现在只有指向HTML的链接显示在那个里。如何请求多个报告类型?

我能想到的最佳方法是创建一个单独的任务:

task codeNarcConsole(type: CodeNarc) {
  // other config
  reportFormat = 'console'
}

check.dependsOn('codeNarcConsole')

不理想,但可行。您也可以将此内容发布到以改进。

您可以进行以下更改以添加其他报告格式,而不是运行第二个任务来生成另一个报告。 然后抓取其中一个文件并将其写入控制台。 (您可以抓取HTML或XML报告并将其写入控制台,但如果没有一些格式,可能很难阅读。)

注意:
reports
closure将为您提供不同格式的报告。
doLast
将其中一个报告的输出打印到控制台。如果不需要控制台输出,可以删除
doLast
闭包

我建议您将任务更改为:

task codenarcConsoleReport {
    doLast {
        println file("${codenarc.reportsDir}/main.txt").text
    }
}
codenarcMain {
    finalizedBy codenarcConsoleReport
    reports {
        text.enabled = true
        html.enabled = true
        xml {
            enabled =  true
            destination = file("${codenarc.reportsDir}/customFileName.xml")
        }
    }
}

注意:这不会导致任务运行两次。

是的,添加任务可能会导致任务运行两次。由于构建时间很重要,您可以编写一个自定义任务来扩展CodeNarc并覆盖报告生成位