Jenkins检查代码风格

服务器配置

安装git

1
yum install git

安装Maven

1
2
3
4
5
6
7
8
wget http://ftp.riken.jp/net/apache/maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz
tar -zxvf apache-maven-3.2.5-bin.tar.gz
mv apache-maven-3.2.5 /usr/local/maven
vi /etc/profile #配置环境变量
# export MAVEN_HOME=/usr/local/maven #添加配置信息
# export PATH=$MAVEN_HOME/bin:$PATH
source /etc/profile #使环境变量生效
mvn -v #验证是否安装成功

Jenkins配置

下载checkstyle

checkstyle下载地址:checkstyle

编写ant脚本

1
2
3
4
5
6
7
8
9
10
11
<?xml version="1.0"?>
<project name="test" basedir="." default="checkstyle">
<taskdef name="checkstyle" classname="com.puppycrawl.tools.checkstyle.ant.CheckstyleAntTask" classpath="checkstyle-7.0-all.jar" />
<target name="checkstyle" description="Generates a report of code convention violations.">
<mkdir dir="/home/bbz/jenkins/jenkins_home/workspace/test/checkstyle" />
<checkstyle config="sun_checks_eclipse.xml" failureProperty="checkstyle.failure" failOnViolation="false">
<formatter type="xml" tofile="/home/bbz/jenkins/jenkins_home/workspace/test/checkstyle/checkstyle_report.xml" />
<fileset dir="/home/bbz/jenkins/jenkins_home/workspace/test" includes="**/*.java" />
</checkstyle>
</target>
</project>
  • checkstyle-7.0-all.jar即为上一步下载的jar包
  • sun_checks_eclipse.xml是checkstyle的规则配置文件,作者是从eclipse的checkstyle插件(Eclipse检查代码风格)导出的,读者也可以尝试其它方式。
  • 作者在jenkins_home下新建check目录,并将以上文件均放置在该目录下。

check

安装jenkins插件

1.安装jenkins插件可以使用在线、离线方式:

  • 在线:Jenkins-系统管理-管理插件-可选插件-直接安装
  • 离线:Jenkins-系统管理-管理插件-高级-上传插件

2.安装以下插件(按需选择即可):

  • Checkstyle Plug-in
  • Ant Plugin
  • Maven Info Plugin
  • Maven Repository Server Plugin
  • GitLab Plugin
  • Gitlab Hook Plugin

创建任务

1.新建-构建一个自由风格的软件项目

job

2.源码管理-Git

git

3.构建-Invoke Ant

ant

4.构建后操作-publish check style analysis results

checkstyle

立即构建

生成分析报告如下:

checkstyle_result1

checkstyle_result2

checkstyle_result3

GitLab自动构建

1.Gitlab配置Web hooks(Project-Settings-Web hooks)

hook1

2.Jenkins配置(Jenkins-系统管理-系统设置)

hook2

hook3

3.Jenkins项目配置

hook4

参考资料:

Java静态代码检查checkstyle

八宝粥 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!