Jenkins系列——使用checkstyle进行代码规范检查
1.目标
通过jenkins使用checkstyle对代码进行规范检查并生成html报告。
构建采用shell。
2.环境
checkstyle5.7(如果是Linux版本选用tar.gz格式)
①其他默认环境(如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进行代码规范检查的更多相关文章
- Jenkins系列——使用checkstyle进行代码规范检查【升级版】
1.背景 在<Jenkins系列——使用checkstyle进行代码规范检查>一文中完成了ant实现代码规范检查的例子.但存在以下缺陷: 每个作业都需要配置一个不同的checkstyle ...
- Java-idea-Checkstyle自动化代码规范检查
一.概述 CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具.它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱 ...
- 扩展阿里p3c实现自定义代码规范检查
前段时间fastjson报出了漏洞,只要打开setAutoType特性就会存在风险,自己测试环境的一个项目被揪出来了-_-!.虽然改动很小,但就是觉得憋屈.fastjson还是挺好的,想着禁用的话太 ...
- linux 创建svn版本库,并在svn上配置checkstyle做代码风格检查
一.创建SVN版本库 1.安装svn服务器 yum install subversion 2.查看版本 svnserve --version 3.建立SVN版本库目录(即你的SVN服务器里面的文件存放 ...
- 玩转Eclipse — 自动代码规范检查工具Checkstyle
大项目都需要小组中的多人共同完成,但是每个人都有自己的编码习惯,甚至很多都是不正确的.那么如何使小组所有开发人员都遵循某些编码规范,以保证项目代码风格的一致性呢?如果硬性地要求每个开发人员在提交代码之 ...
- 在intellij中使用checkStyle进行代码规范
1 编写代码检测规则可以参考阿里和google的规则和checkstyle的官网文档.checkstyle官网地址http://checkstyle.sourceforge.net/ 假设自己的sty ...
- Jenkins系列——使用SonarQube进行代码质量检查
1.目标 之前已经写过一篇关于Jenkins和SonarQube的一篇博客<jenkins集成sonar>,本文在参考前文的基础上,做了详细的补充. 使用SonarQube进行代码质量检查 ...
- SwiftLint:代码规范检查工具介绍
Swift-CodeStyle Checker:SwiftLint 介绍: SwiftLint 是一个用于强制检查 Swift 代码风格和规定的一个工具,基本上以 GitHub's Swift 代码风 ...
- IDEA 阿里巴巴代码规范检查插件
1.问题概要 大家都想写出规范的代码,可规范的标准是什么勒,估计每个人心中的标准都不是完全一致的 在分工合作越来越精细化的时代,我们需要一个最大程度接近公认的规范,这里我们以阿里巴巴的代码规范作为参考 ...
随机推荐
- python_如何读写csv数据
案例: 通过股票网站,我们获取了中国股市数据集,它以csv数据格式存储 Data,Open,High,Low,Close,Volume,Adj Close 2016-06-28,8.63,8.47,8 ...
- MySQL中判断日期间隔的方法
MySQL中查询一定时间间隔内的数据的方法比较常用,可以使用TO_DAYS.DATE_SUB等函数来实现. TO_DAYS函数的作用是返回指定日期从0年开始计算的天数. DATE_SUB函数的作用是通 ...
- mysql数据库安装注意事项:
mysql数据库安装注意事项: https://jingyan.baidu.com/article/642c9d34aa809a644a46f717.html(安装教程) 注意语言设置为gbk可以解决 ...
- python并发编程之多进程(理论)
一.什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 二.进程与程序的区别 程序:仅仅是一堆代 进程:是指打开程序运行的过程 三.并发与并行 并发与并行是指cpu运行多个 ...
- 通过traceroute追踪并打印成图片
#!/usr/bin/evn python #-*-coding:utf-8 -*- import time import logging,warnings import subprocess imp ...
- Tomcat8远程访问manager,host-manager被拒绝403
Tomcat部署在服务器之后在服务器本地访问manager和host-manager成功(即127.0.0.1:8080或者localhost:8080),但使用测试主机访问tomcat的manage ...
- FBReader阅读引擎支持的功能
"三十年河东,三十年河西"是一句民间谚语,它的来源是:从前黄河河道不固定,经常会改道(历史上无数次发生).某个地方原来在河的东面,若干年后,因黄河水流改道,这个地方会变为在河的西面 ...
- 从程序员的角度设计一个Java的神经网络
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 来自维基百科: 人工神经网络(ANN)或连接系统是受生物神经网络启发构成生物大脑的计算系统.这样的系统通过考虑例子来学习(逐步提高性能)来完成任 ...
- 接口中定义变量必须为public static final的原因
在interface里面的变量默认都是public static final 的,原因如下: 1. 接口是一种高度抽象的"模版",,而接口中的属性也就是’模版’的成员,就应当是 ...
- Object Detection · RCNN论文解读
转载请注明作者:梦里茶 Object Detection,顾名思义就是从图像中检测出目标对象,具体而言是找到对象的位置,常见的数据集是PASCAL VOC系列.2010年-2012年,Object D ...