Jenkins+maven+findbugs对java代码进行静态代码分析

转载注意出处:http://blog.csdn.net/hwhua1986/article/details/48290549

by  whhuang

一、POM.xml的修改

1、  在build里面配置:

Jenkins+maven+findbugs对java代码进行静态代码分析_第1张图片

代码如下:

                    

                                   org.codehaus.mojo

                                   findbugs-maven-plugin

                                   3.0.1

                                  

                                   High

                                   Default

                                   true

                                   true

                                   true

                                   target/site

                                  

                    

2、  在report里面配置:

Jenkins+maven+findbugs对java代码进行静态代码分析_第2张图片

代码如下:

       

              

                      org.codehaus.mojo

                      findbugs-maven-plugin

                      3.0.1

                     

                      true

                     

                     

                      true

                      true

                     

              

       

二、JOB的配置

1、安装插件findbugs-plug-in

Jenkins+maven+findbugs对java代码进行静态代码分析_第3张图片

2、新建job

Jenkins+maven+findbugs对java代码进行静态代码分析_第4张图片

3、  配置svn

Jenkins+maven+findbugs对java代码进行静态代码分析_第5张图片

4、配置Invoke top-level Maven targets

Jenkins+maven+findbugs对java代码进行静态代码分析_第6张图片

5、添加PublishFindBugs analysis results,可以默认配置也可以修改相关配置。

Jenkins+maven+findbugs对java代码进行静态代码分析_第7张图片

三、结果的查看

1、构建job

Jenkins+maven+findbugs对java代码进行静态代码分析_第8张图片

2、查看结果

点击查看具体问题

 Jenkins+maven+findbugs对java代码进行静态代码分析_第9张图片

 

运行多次后会生成趋势图

Jenkins+maven+findbugs对java代码进行静态代码分析_第10张图片

 

 

四、问题备注

问题1、使用findbugs:findbugs后不能检查到问题

indbugs虽然是一个静态分析工具,但是它分析的不是java源代码(后缀名为.java),而class件(编译后的文件)。在运行mvn findbugs:findbugs 时,不会自动编译项目,即没有class文件,所以findbugs没有运行。

有的技术博客说:“cleanfindbugs:findbugs install ,这种写法是错的,可以运行的,但是并不产生findbugs报告”,说法是对的,但是并没有说明原因。

原因:运行clean后,class文件都被删除了,所以不会运行findbugs,或者说findbugs没有可分析的class文件,自然就没有产生分析结果。

使用maven运行findbugs前一定先编译,一定要有class文件!

解决方法:

(1)mvnclean compile findbugs:findbugs

(2)mvnclean test findbugs:findbugs (test会调用compile生命周期)

如下图:

Jenkins+maven+findbugs对java代码进行静态代码分析_第11张图片

2、配置了findbugs后不能生成报告

       编译并执行findbugs命令时发现20个问题

Jenkins+maven+findbugs对java代码进行静态代码分析_第12张图片

但是Jenkins获取到0个错误

Jenkins+maven+findbugs对java代码进行静态代码分析_第13张图片

解决方法:

       注释reporting里面的

Jenkins+maven+findbugs对java代码进行静态代码分析_第14张图片

你可能感兴趣的:(Jenkins,findbugs)