【问题标题】:Generate multiple report types using CodeNarc in Gradle在 Gradle 中使用 CodeNarc 生成多种报告类型
【发布时间】:2016-04-25 11:59:11
【问题描述】:

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

我的build.gradle

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

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

【问题讨论】:

    标签: gradle codenarc


    【解决方案1】:

    您可以进行以下更改以添加另一种报告格式,而不是运行第二个任务来生成另一个报告。 然后抓取其中一个文件并将其写入控制台。 (您可以只获取 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")
            }
        }
    }
    

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

    【讨论】:

      【解决方案2】:

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

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

      不理想,但可行。您也可以向Gradle Bugs 发帖,以改进它。

      【讨论】:

      • 是的,添加一个任务可能会导致它运行两次。由于构建时间很重要,您可以编写一个扩展 CodeNarc 并覆盖报告生成位的自定义任务
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 2021-10-10
      • 2018-03-15
      • 2015-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多