搭建jenkin+ant+findbugs实现静态代码检查

目录

 

一.简介

二.环境搭建

1.ant+junit配置

2.findbugs安装

3. build.xml文件的编写

三.jenkins配置

1.安装插件

2.新建工程

3.项目构建及查看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目录下

搭建jenkin+ant+findbugs实现静态代码检查

 

将junit-4.9.jar加入环境变量

搭建jenkin+ant+findbugs实现静态代码检查

 

测试junit是否配置正确,

编译生成两个class文件

搭建jenkin+ant+findbugs实现静态代码检查

 

2.findbugs安装

    2.1 首先下载findbugs的安装包并解压

搭建jenkin+ant+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下面

搭建jenkin+ant+findbugs实现静态代码检查

 

2.4检查findbugs是否安装成功

命令行输入findbugs -version,能够打印出版本信息说明安装成功

搭建jenkin+ant+findbugs实现静态代码检查

 

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,安装以下三个插件

搭建jenkin+ant+findbugs实现静态代码检查

 

安装完成之后重启jenkins生效

 

2.新建工程

在jenkins下新建项目test_FindBugs

这里以测试erp4.9的代码为例,源码管理那里就选择到相应的erp代码的svn地址,

之后的构建步骤,因为此次build.xml要使用自己编写的文件而不使用svn的,所以在此添加Execute shell,用自己写的build.xml替换掉svn checkout下来的build.xml

搭建jenkin+ant+findbugs实现静态代码检查

搭建jenkin+ant+findbugs实现静态代码检查

 

在这之后添加Invoke Ant,target后面填写build.xml里面定义的FindBugs

搭建jenkin+ant+findbugs实现静态代码检查

然后增加构建后步骤,添加打印FindBugs的报告,选择默认值就好

搭建jenkin+ant+findbugs实现静态代码检查

 

3.项目构建及查看findbugs报告

至此工程创建完成,保存之后即可立即构建,构建之后便可看到如下的FindBugs Warnings,点击可查看详细内容。

搭建jenkin+ant+findbugs实现静态代码检查

搭建jenkin+ant+findbugs实现静态代码检查

 

 

若有多次构建,可以看到FindBugs的趋势(纵坐标表示warnings数量,横坐标表示构建版本数)

搭建jenkin+ant+findbugs实现静态代码检查