首页 > 其他分享 >干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测

干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测

时间:2022-12-13 13:34:40浏览次数:71  
标签:xml maven checkstyle 自动检测 配置 pmd 构建 BUILD findbugs

配置前提:

对于maven项目来说,需要在pom.xml文件的<build><plugins>添加配置</plugins></build>

网上有些地方说要放在<reporting></reporting>里面,但是经过验证对于产出pmd.html、checstyle.html和findbugsXml.xml没有影响。

但是如果需要产出findbugs.html可视化文件的话,需要把findbugs的配置放到<reporting>里面,在输出findbugsXml.xml后敲击

mvn compile site

命令生成html文件。

但是经过我本地测验,这种方式需要消耗大量时间,不建议使用。可以采用下面的方式进行查看。

另外findbugs的报告xml形式不是很人性化,但是如果是在你本地的eclipse下的话可以输入一下命令查看findbgus的gui界面

//生成findbugsXml.xml文件
clean compile findbugs:findbugs
//然后查看gui
findbugs:gui

pom.xml中对于三种代码检查方式的配置如下

<build>
<plugins>
<!-- 配置静态代码检查包括checkStyle、findBugs、pmd -->
<!-- 配置checkStyle代码规范检查 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.10</version>
<configuration>
<configLocation>checkstyle.xml</configLocation>
</configuration>
</plugin>
<!-- 配置findbugs对编译文件中可能出现的问题在运行前进行检查 -->
<!-- <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<threshold>High</threshold>
<effort>Default</effort>
<findbugsXmlOutput>true</findbugsXmlOutput>
<findbugsXmlWithMessages>true</findbugsXmlWithMessages>
<findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>
</configuration>
</plugin> -->
<!-- 配置pmd对java源文件进行检查,检测出可以优化的代码 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.5</version>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<!-- 如果要生成findbugs.html的话需要放到这里面 -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<threshold>High</threshold>
<effort>Default</effort>
<findbugsXmlOutput>true</findbugsXmlOutput>
<findbugsXmlWithMessages>true</findbugsXmlWithMessages>
<findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>
</configuration>
</plugin>
</plugins>
</reporting>

View Code

一、Jenkins上添加新项目的基础配置

首先Jenkins上要安装相应的插件​​FindBugs Plug-in​​​+​​PMD Plug-in​​​+​​Checkstyle Plug-in​​​+​​Static Analysis Collector Plug-in​

这里需要特别注意虽然,我们只是对代码进行检查,并不进行打包发布操作,但是也是需要配置执行节点Node

干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测_html

二、配置每日定时触发代码检查的日程表(PollScm)

PollScm一共有五个可配置参数 * * * * *

第一个参数代表的是分钟 minute,取值 0~59;

第二个参数代表的是小时 hour,取值 0~23;

第三个参数代表的是天 day,取值 1~31;

第四个参数代表的是月 month,取值 1~12;

第五个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。

我设置的是每周一到周五凌晨两点进行代码检查

H 2 * * 1-5

干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测_xml_02

三、maven项目对于findbugs、pmd、及checkstyle的构建配置

 在构建这一步的时候就需要填写check命令了

findbugs的配置如下:

干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测_maven_03

pmd的配置如下:

干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测_html_04

checkstyle的配置如下:

干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测_html_05

以上配置完成后,就会在项目的target/site目录下产出相应的Html和xml文件

四、构建后以报表的形式显示三个report

在构建后操作中选择【Publish *** analysis results】,默认设置就好。

通过这一步让代码检测报告动可视化的显示在Jenkins界面上

干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测_html_06

五、完成代码检查后发送项目检查邮件给项目小组

 我是配置的发送模板,然后按照模板进行发送email

一、配置邮件发送模板

在【系统管理】中选择​​Editable Email Notification Templates​

干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测_xml_07

---------

干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测_xml_08

 ---------

干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测_xml_09

 

------

干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测_html_10

 邮件内容模板:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"
offset="0">
<table width="95%" cellpadding="0" cellspacing="0"
style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
<tr>
<td><h2>
<font color="#0000FF">${PROJECT_NAME}构建结果 - ${BUILD_STATUS}</font>
</h2></td>
</tr>
<tr>
<td><br />
<b><font color="#0B610B">构建信息</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>项目名称 : ${PROJECT_NAME}</li>
<li>构建编号 : 第${BUILD_NUMBER}次构建</li>
<li>构建人 : ${CAUSE}</li>
<li>构建节点 : ${NODE_NAME}</li>
<li>变更集: ${JELLY_SCRIPT,template="html"}</li>
<li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
<li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>
<li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
<li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
</ul>
</td>
</tr>
<tr>
<td><b><font color="#0B610B">Changes Since Last
Successful Build:</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td>
<ul>
<li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>
</ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat="    %p"}
</td>
</tr>
<tr>
<td><b>Failed Test Results</b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<tr>
<td><pre
style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">$FAILED_TESTS</pre>
<br /></td>
</tr>
<tr>
<td><b><font color="#0B610B">构建日志 (最后 100行):</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
<!-- <tr>
<td>Test Logs (if test has ran): <a
href="${PROJECT_URL}ws/TestResult/archive_logs/Log-Build-${BUILD_NUMBER}.zip">${PROJECT_URL}/ws/TestResult/archive_logs/Log-Build-${BUILD_NUMBER}.zip</a>
<br />
<br />
</td>
</tr> -->
<tr>
<td><textarea cols="80" rows="30" readonly="readonly"
style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea>
</td>
</tr>
<tr>
<td><b><font color="#0B610B">构建结果及报告:</font></b>
<hr size="2" width="100%" align="center" /></td>
</tr>
</table>
</body>
</html>

View Code

 项目配置:

干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测_xml_11

 


干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测_xml_12

作者:​​翎野君​


若本文如对您有帮助,不妨点击一下右下角的。


如果您喜欢或希望看到更多我的文章,可扫描二维码关注我的微信公众号《翎野君》。


转载文章请务必保留出处和署名,否则保留追究法律责任的权利。



标签:xml,maven,checkstyle,自动检测,配置,pmd,构建,BUILD,findbugs
From: https://blog.51cto.com/lingyejun/5933853

相关文章

  • yum命令提示error: rpmdb: BDB0113 Thread/process,解决方法
    最近在做RHCE的题目,yum命令装vdo时,使用yuminstall命令的时候,提示error:rpmdb:BDB0113Thread/process,具体错误如下:[root@node2~]#yuminstallvdo-yerror:rpmdb......
  • error: rpmdb: BDB0113 Thread/process 14536/140712790841152 failed: BDB1507 Threa
    yumremovedockererror:rpmdb:BDB0113Thread/process14536/140712790841152failed:BDB1507ThreaddiedinBerkeleyDBlibraryerror:db5error(-30973)fromdb......
  • checkstyle
    目录是什么如何使用是什么和阿里代码规范一样的东西,默认为sun、google代码规范,可自己扩展,可自由选择。如何使用1:idea插件安装:2:找到公司的自定义代码规范文件:3:使用......
  • Android代码规范利器: Checkstyle
    程序代码向来都不仅仅是用来运行的,写的一手好代码,易读,可维护应该是每个程序员所追求的。每个团队都(应该)有一套优良统一的代码规范,而规范的检查依赖于人工检测就不太现实,好在......
  • 解决Checkstyle File Name 异常的问题
    Checkstyle是一款很棒的工具,用来发现很多编码风格的问题。还不了解的同学可以移步这里​​Android代码规范利器:Checkstyle​​查看。但是在使用Checkstyle时,却出现了一些问......
  • 在Azure DevOps中使用Checkstyle自动检查编码规范
    1.概述什么是checkstyle?checkstyle(https://checkstyle.org/)是一个督促开发人员遵守统一编码标准的工具,它是基于java编写的工具,使用自动化的方式,将开发人员从检查代码规......
  • pmdk -- libpmemlog 介绍
    文章目录​​1.libpmemlog应用背景​​​​2.libpmemlog使用方式​​​​2.1基本接口​​​​2.2接口使用​​​​3.Libpmemlog性能​​​​3.1writesyscall性......