Jenkins系列——使用checkstyle进行代码规范检查

Posted 叶莜落

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins系列——使用checkstyle进行代码规范检查相关的知识,希望对你有一定的参考价值。

1.目标

  通过jenkins使用checkstyle对代码进行规范检查并生成html报告。

  构建采用shell。

2.环境

  checkstyle5.7(如果是Linux版本选用tar.gz格式

  apache-ant-1.9.9

①其他默认环境(如jdk)同前 。

②checkstyle没有选择最新版7.6.1是因为7.6.1版本没有将xml格式的报告转换为html报告的xsl文件。

③ant版本不宜选择太高,因为高版本可能需要JDK8+的支持。

④jenkins checkstyle插件主要是用于出版checkstyle报告,这里不涉及。

3.前置工作

  3.1 安装ant及checkstyle。

  3.2 编写ant脚本执行checkstyle构建。

<?xml version="1.0" encoding="UTF-8"?> 
<project name="checkstyle" default="checkstyle" basedir="D:\\data\\jenkins\\workspace\\CheckstyleDemo_CODE"> <!-- 检查源码的路径 ,每个作业不同-->
    <target name="init">
        <tstamp/>
        <!-- 设置作业工作目录,每个作业不同 -->
        <property name="project.dir" value="D:\\data\\jenkins\\workspace\\CheckstyleDemo_CODE"/>
        <!-- 输出报告的路径  -->
        <property name="project.checkstyle.report.dir" value="${project.dir}\\checkstyle_report"/>    
        <property name="project.checkstyle.result.name" value="checkstyle-result.xml"/>
        <property name="project.checkstyle.report.name" value="checkstyle-report.html"/>
        <!-- 检测规则存放路径  -->
        <property name="checkstyle.config" value="D:\\data\\jenkins\\myConf\\checkstyle-5.7\\sun_checks.xml"/>        
        <property name="checkstyle.report.style" value="D:\\data\\jenkins\\myConf\\checkstyle-5.7\\contrib\\checkstyle-author.xsl"/>    
        <property name="checkstyle.result" value="${project.checkstyle.report.dir}\\${project.checkstyle.result.name}"/>    
        <property name="checkstyle.report" value="${project.checkstyle.report.dir}\\${project.checkstyle.report.name}"/>    
        <mkdir dir="${project.checkstyle.report.dir}"/>
    </target>
    
    
    <taskdef resource="checkstyletask.properties" classpath="D:\\data\\jenkins\\myConf\\checkstyle-5.7\\checkstyle-5.7-all.jar" />   
    <target name="checkstyle"  depends="init" description="check java code and report." >          
         <checkstyle config="${checkstyle.config}" failureProperty="checkstyle.failure"  failOnViolation="false">    
            <formatter type="xml"   tofile="${checkstyle.result}" />      
            <fileset dir="${project.dir}\\src" includes="**/*.java" /> <!-- 检查源代码的存放路径 -->
        </checkstyle> 
        <!-- 通过指定的xsl模版文件生成一份html的报告,这里生成的文件用于邮件发送时附加上,另外Jenkins插件也会生成可视化的结果  --> 
        <style in="${checkstyle.result}" out="${checkstyle.report}" style="${checkstyle.report.style}" />    
    </target> 
</project>   
checkstyle作业构建脚本

每个checkstyle作业都应该新建一个类似的ant脚本,只需要更改作业源码路径(2处)。

4.jenkins配置

  新建一个自由风格的job,配置如下:

这里源码使用了码云的zheng项目,直接放到了该作业工作区的src目录之下。

5.构建结果

  在工作区中新建了一个checkstyle_report目录,目录中生成了checkstyle_report.xml和checkstyle_report.html文件。

   html格式的报告内容如下:

 

以上是关于Jenkins系列——使用checkstyle进行代码规范检查的主要内容,如果未能解决你的问题,请参考以下文章

让 Checkstyle 自定义规则在 Hudson/Jenkins 中工作

jenkins+checkstyle

centos7+maven+jenkins+checkstyle 构建总是java.io.EOFException异常

IDEA插件系列(62):CheckStyle-IDEA插件——对Java文件的实时和按需扫描

Sonar 集成Jenkins进行代码审查

配置sonar和jenkins进行代码审查