搭建jenkin+ant+findbugs实现静态代码检查
目录
一.简介
FindBugs是一个帮助项目发现Bug的静态分析工具,本文搭建jenkin+ant+findbugs环境,方便每次构建时,即可同时得到一份静态代码检查报告。
本文重点讲述findbugs的搭建,jenkins和ant的搭建此处省略。
二.环境搭建
1.ant+junit配置
http://www.linuxidc.com/Linux/2011-08/41737.htm
安装junit,首先将下载的junit-4.9.jar放到$JAVA_HOME的lib目录下
将junit-4.9.jar加入环境变量
测试junit是否配置正确,
编译生成两个class文件
2.findbugs安装
2.1 首先下载findbugs的安装包并解压
2.2然后,将findbugs的安装路径加入到环境变量
vim ~/.bashrc 在最后加入以下两行
export FINDBUGS_HOME=/home/autotest/findbugs
export PATH=$PATH:$FINDBUGS_HOME/bin
source一下使其生效
2.3将findbugs/lib目录下的findbugs.jar 拷贝到ant安装目录的lib下面
2.4检查findbugs是否安装成功
命令行输入findbugs -version,能够打印出版本信息说明安装成功
3. build.xml文件的编写
官网有提供findbugs的build.xml,整合出如下:
<?xml version="1.0" encoding="UTF-8"?>
<project default="test_findbugs" basedir=".">
<!--findbugs的安装目录-->
<property name="findbugs.dir" location="/home/autotest/findbugs"/>
<!--存放class目录-->
<property name="class.dir" location="."/>
<!--源代码目录-->
<property name="src.dir" location="./src"/>
<!--定义findbugs-classpath-->
<path id="findbugs.path" >
<fileset dir ="${findbugs.dir}">
<include name ="**/*.jar"/>
<include name="lib/findbugs-ant.jar"/>
</fileset>
</path>
<!--声明findbugs的任务-->
<taskdef name="FindBugs"
classname="edu.umd.cs.findbugs.anttask.FindBugsTask"
classpathref ="findbugs.path"/>
<!--建立findbugs任务-->
<taskdef name="FindBugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask“classpathref =" findbugs.path"/>
<property name="findbugs_home" location="/home/autotest/findbugs" />
<target name="FindBugs" depends="copyToBuild">
<!--定义生成报告的格式以及存放目录,以及设置超时时间(毫秒)-->
<FindBugs home="${findbugs.dir}" output="html" outputFile="${findbugs.dir}/findbugs.html" timeout="360000000">
<!-- 定义源代码路径 -->
<sourcePath location="${src.dir}" />
<!-- 定义findbugs查找的类路径 -->
<class location="${class.dir}" />
</FindBugs>
</target>
</project>
本次试验erp代码,所以讲以上build文件的内容插入到erp的build.xml里面,并添加依赖原build.xml里面的编译(上面红色部分)(FindBugs是对.class文件的检查)
三.jenkins配置
1.安装插件
在jenkins的系统管理、管理插件下面搜素findbugs,安装以下三个插件
安装完成之后重启jenkins生效
2.新建工程
在jenkins下新建项目test_FindBugs
这里以测试erp4.9的代码为例,源码管理那里就选择到相应的erp代码的svn地址,
之后的构建步骤,因为此次build.xml要使用自己编写的文件而不使用svn的,所以在此添加Execute shell,用自己写的build.xml替换掉svn checkout下来的build.xml
在这之后添加Invoke Ant,target后面填写build.xml里面定义的FindBugs
然后增加构建后步骤,添加打印FindBugs的报告,选择默认值就好
3.项目构建及查看findbugs报告
至此工程创建完成,保存之后即可立即构建,构建之后便可看到如下的FindBugs Warnings,点击可查看详细内容。
若有多次构建,可以看到FindBugs的趋势(纵坐标表示warnings数量,横坐标表示构建版本数)