2016-04-25 90 views
2

我想在Gradle的CodeNarc中生成HTML和控制檯報告。在Gradle中使用CodeNarc生成多個報告類型

build.gradle

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

這工作得很好,但希望我也有顯示在控制檯報告顯示,截至目前顯示那裏才HTML鏈接。我怎樣才能請求多種報告類型?

回答

0

我能想到的最好的辦法是創建一個單獨的任務:

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

check.dependsOn('codeNarcConsole') 

並不理想,但可行的。你也可以發佈到Gradle Bugs這個改進。

+0

它運行CodeNarc兩次,我的代碼?它已經花了我很多時間... –

+1

是的,添加任務可能會導致它運行兩次。由於構建時間很重要,因此您可以編寫一個自定義任務來擴展CodeNarc並覆蓋報告生成位 –

2

而不是運行第二個任務來生成另一個報告,您可以進行以下更改以添加另一個報告格式。 然後抓住其中一個文件並將其寫入控制檯。 (您可以抓住HTML或XML報告並將其寫入控制檯,但如果沒有格式化,可能會很難閱讀。)

注意:reports閉包會以不同的格式獲得報告。 doLast會將其中一個報告的輸出打印到控制檯。如果您不需要控制檯輸出,則可以刪除doLast閉合。

我建議改變你的任務是這樣的:

codenarcMain { 
    reports { 
     text { 
      enabled = true 
      destination = file("${codenarc.reportsDir}/CodeNarcMain.txt") 
     } 

     html.enabled = true 

     xml { 
      enabled = true 
      destination = file("${codenarc.reportsDir}/CodeNarcMain.xml") 
     } 
    } 

    doLast { 
     println "****************************** CODE NARC ******************************" 
     File codeNarcFile = file("${codenarc.reportsDir}/CodeNarcMain.txt") 
     println codeNarcFile.getText() 
     println "****************************** CODE NARC ******************************" 
    } 
}