为了规范代码,我们一般会集成静态代码检测工具,比如PMD、FindBugs、Checkstyle,那么Jenkins如何集成这些检查工具,并把检查结果放到构建邮件里呢?
1.pom.xml
build。plugins 增加:
maven-assembly-pluginpackagesingle${project.artifactId}-${project.version}falsesrc/assembly/assembly-descriptor.xmlorg.codehaus.mojofindbugs-maven-plugin3.0.5HighDefaulttruetruetruehtmlorg.apache.maven.pluginsmaven-pmd-plugin3.8
reporting 增加:
org.apache.maven.pluginsmaven-checkstyle-plugin3.0.0checkstyleorg.apache.maven.pluginsmaven-pmd-plugintrueutf-81001.8**/*Bean.java**/generated/*.javatarget/generated-sources/stubs3.8org.apache.maven.pluginsmaven-jxr-plugin2.5org.apache.maven.pluginsmaven-surefire-report-plugin2.14.1org.codehaus.mojocobertura-maven-plugin
2 jenkins设置
2.1 安装相关插件
直接搜索安装:
Checkstyle Plug-in
PMD Plug-in
FindBugs Plug-in
Static Analysis Collector Plug-in
邮件插件安装:
Email Extension Plugin
Email Extension Template Plugin
2.2 项目配置
maven构建Goals设置为:
pmd:pmd checkstyle:checkstyle findbugs:findbugs package -DskipTests
在构建设置里,勾上
Publish Checkstyle analysis results
Publish FindBugs analysis results
Publish PMD analysis results
构建后操作,添加Publish combined static analysis results,默认设置即可。
2.3 邮件配置
首先在系统设置里,配置Extended E-mail Notification部分
设置:
Default Subject :自动构建通知:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!
Default Content:${JELLY_SCRIPT, template="analysis.jelly"}
剩下的自己配置下SMTP和收件人。
这里邮件内容使用analysis.jelly,使用jelly script,系统没有这个模板,我们需要配置一下:
打开系统管理-Managed files,增加一个Extended Email Publisher Jelly Template
模板文件如下,该模板修改自官方的模板,做了一定的本地化和样式调整:
<?jelly escape-by-default='true'?>${project.name}
${project.name}构建成功失败
基本信息
构建地址${rooturl}${build.url}项目:${project.name}构建时间:${it.timestampString}构建耗时:${build.durationString}构建原因:${cause.shortDescription} 构建描述:${build.description}构建服务器:${build.builtOnStr}master
构建健康报告
WDescriptionScore src="${rooturl}${healthReport.getIconUrl(healthIconSize)}" />${healthReport.description}${healthReport.score}
JUnit Tests
PackageFailedPassedSkippedTotal${packageResult.getName()}${packageResult.getFailCount()}${packageResult.getPassCount()}${packageResult.getSkipCount()}${packageResult.getPassCount()+packageResult.getFailCount()+packageResult.getSkipCount()} items="${packageResult.getFailedTests()}">${failed_test.getFullName()}
代码静态检查结果
名称检查结果总数HighNormalLow${action.displayName} ${action.result.numberOfAnnotations} ${action.result.getNumberOfAnnotations('HIGH')} ${action.result.getNumberOfAnnotations('NORMAL')} ${action.result.getNumberOfAnnotations('LOW')}
保存。
然后配置系统管理——Editable Email Notification Templates,增加一个默认模板,名称为默认,直接保存。
回到项目配置, 在构建环境里,
勾上Provide Configuration files
选择File为刚新增的jelly文件,target填写/var/jenkins_home/email-templates
Variable填写analysis.jelly
然后,在构建后操作里增加Editable Email Notification Templates,选择默认模板。
这样就完成了配置。
作者:JadePeng
链接:https://www.jianshu.com/p/66d2e32f471a