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

g6baxovj  于 2023-06-23  发布在  其他
关注(0)|答案(3)|浏览(143)

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

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

这工作正常,但我也希望有报告显示在控制台,因为现在只有链接到HTML显示在那里。如何申请多种报告类型?

kjthegm6

kjthegm61#

您可以进行以下更改以添加另一种报告格式,而不是运行第二个任务来生成另一个报告。然后抓取其中一个文件并将其写入控制台。(您可以直接获取HTML或XML报告并将其写入控制台,但如果没有一些格式,可能很难阅读。)
注意:reports闭包将为您提供不同格式的报告。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")
        }
    }
}

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

pw136qt2

pw136qt22#

在较新版本的Gradle(7+)中,我在以下内容上收到了弃用警告:

reports {
    html.enabled = true
    xml.enabled = true
}

格式已更改为(用于启用HTML和XML报告)

reports {
    html.required = true
    xml.required = true
}
ylamdve6

ylamdve63#

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

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

check.dependsOn('codeNarcConsole')

不理想,但可行。您也可以将此问题发布到Gradle Bugs以获得改进。

相关问题