2016-04-25 10 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へのリンクだけがそこに表示されるレポートは、コンソール上に表示したいのですが。複数のレポートタイプをリクエストするにはどうすればよいですか?

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

check.dependsOn('codeNarcConsole') 

ない理想的な、しかし、実行可能:私は考えることができる

答えて

0

ベストな方法は、別のタスクを作成することです。また、これを改善するためにGradle Bugsに投稿することもできます。

+0

それは私のコードのために二回CodeNarcを実行しますか?それはすでに私のために多くの時間がかかります... –

+1

タスクを追加すると、2度実行される可能性があります。ビルド時間が重要なので、CodeNarcを拡張し、レポート生成ビットをオーバーライドするカスタムタスクを記述することができます –

2

別のレポートを生成するために2番目のタスクを実行する代わりに、次の変更を行って別のレポート形式を追加することができます。 それから、ファイルの1つをつかんでコンソールに書き込んでください。 (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 ******************************" 
    } 
} 
関連する問題