[英]How to publish Codenarc report for Gradle project in Jenkins?
我正在嘗試為我的Gradle Groovy項目生成Codenarc報告並在Jenkins中發布它們。
我成功配置了我的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')
}
我還使用Violations插件在Jenkins上設置了一個工作,但是當生成違規報告時,它不會顯示實際的代碼違規。 它只顯示統計信息,如果我按下具有違規的groovy文件,則顯示空白頁面。
我有使用Codenarc插件的Grails項目,它在違規報告中顯示完整的代碼片段,所以我猜我的Gradle中的Codenarc設置有問題?
非常歡迎任何幫助或建議!
編輯:如果相關,生成的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>
考慮使用HTML Publisher插件您可以在作業配置后構建操作中配置報表參數,或者如果您使用管道,請將這些行添加到Jenkinsfile:
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"
]
)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.