2014-10-07 2 views
4

Я пытаюсь генерировать отчеты Codenarc для моего проекта Gradle Groovy и публиковать их в Jenkins.Как опубликовать отчет Codenarc для проекта Gradle в Дженкинсе?

Я успешно настроил мой проект Gradle производить Codenarc отчеты с:

build.gradle

apply plugin: 'codenarc' 
... 
dependencies { 
    codenarc 'org.codenarc:CodeNarc:0.21' 
    ... 
} 
codenarc { 
    configFile = file('config/codenarc/codenarc.groovy') 
    // sourceSets = [project.sourceSets.main] // run codenarc on production sources only 
    ignoreFailures = true // Let the build finish even though there are code warnings 
    reportFormat = 'xml' 
    reportsDir = new File("build/reports/codenarc") 
} 

конфигурации/codenarc/codenarc.groovy

// Read and choose rules here: http://codenarc.sourceforge.net/codenarc-rule-index.html 
ruleset { 
    ruleset('rulesets/basic.xml') 
} 

Я также создать работу над Дженкинсом с плагином Нарушений, но когда отчет о нарушениях является родом Это не показывает фактические нарушения кода. Он просто показывает статистику и пустую страницу, если я нажимаю groovy-файл с нарушениями.

У меня есть проекты Grails с плагином Codenarc, который появляется с полным фрагментом кода в отчете о нарушениях, поэтому я предполагаю, что что-то не так с моей установкой Codenarc в Gradle?

Любая помощь или предложения приветствуются!

Edit: Если это уместно, в результате Codenarc XML выглядит следующим образом:

<?xml version='1.0'?> 
<CodeNarc url='http://www.codenarc.org' version='0.21'> 
    <Report timestamp='07-10-2014 15:31:18'/> 
    <Project title=''> 
     <SourceDirectory>src\groovy</SourceDirectory> 
    </Project> 
    <PackageSummary totalFiles='124' filesWithViolations='118' priority1='0' priority2='156' 
        priority3='143'></PackageSummary> 
    <Package path='testmodel' totalFiles='124' filesWithViolations='118' priority1='0' priority2='156' 
      priority3='143'></Package> 
    <Package path='testmodel/begivenheder' totalFiles='31' filesWithViolations='30' priority1='0' priority2='32' 
      priority3='17'> 
     <File name='AbstraktTest.groovy'> 
      <Violation ruleName='ClassJavadoc' priority='2' lineNumber='5'> 
       <SourceLine><![CDATA[@CompileStatic]]></SourceLine> 
       <Message><![CDATA[Class testmodel.begivenheder.AbstraktAendring missing JavaDoc]]></Message> 
      </Violation> 
      ... 
     </File> 
    </Package> 
    <Rules> 
     <Rule name='AbcMetric'> 
      <Description> 
       <![CDATA[Checks the ABC size metric for methods/classes. A method (or "closure field") with an ABC score greater than the maxMethodAbcScore property (60) causes a violation. Likewise, a class that has an (average method) ABC score greater than the maxClassAverageMethodAbcScore property (60) causes a violation.]]></Description> 
     </Rule> 
     ... 
    </Rules> 
</CodeNarc> 
+0

У вас есть проект с примером? – Opal

+0

возможно, это связано с этим открытым вопросом Дженкинса? https://issues.jenkins-ci.org/browse/JENKINS-17722. Симптомы кажутся одинаковыми. –

ответ

0

Рассмотрите возможность использования HTML Publisher plugin Вы можете настроить параметры отчета в конфигурации задания после построения действия или если вы используете трубопровод, добавьте эти строки в свой файл Jenkins:

node('slaveName') { 

    // git, build, test, stages omitted 

    stage('Publish') { 

     echo 'Publish Codenarc report' 
     publishHTML(
       target: [ 
         allowMissing   : false, 
         alwaysLinkToLastBuild: false, 
         keepAll    : true, 
         reportDir   : 'target/site', 
         reportFiles   : 'codenarc.html', 
         reportName   : "Codenarc Report" 
       ] 
     ) 
    } 

}