maven 使用findbugs 插件

简介:

项目采用maven构建,想使用findbugs-maven-plugin 插件进行代码静态分析

官网:http://findbugs.sourceforge.net/

a program which uses static analysis to look for bugs in Java code

 

项目目录结构如下:

 最下面的文件就是maven 的配置文件pom.xml,类似于ant的build.xml文件,pom.xml内容如下:

 

Xml代码   收藏代码
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
  3.     <modelVersion>4.0.0</modelVersion>  
  4.     <groupId>com.kunlunsoft</groupId>  
  5.     <artifactId>isChinese</artifactId>  
  6.     <version>0.0.1-SNAPSHOT</version>  
  7.   
  8.     <properties>  
  9.         <checkstyle.config.location>checkstyle.xml</checkstyle.config.location>  
  10.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  11.     </properties>  
  12.     <reporting>  
  13.         <plugins>  
  14.             <plugin>  
  15.                 <groupId>org.codehaus.mojo</groupId>  
  16.                 <artifactId>findbugs-maven-plugin</artifactId>  
  17.                 <version>2.5.2</version>  
  18.             </plugin>  
  19.         </plugins>  
  20.     </reporting>  
  21.   
  22.       
  23. </project>  

 

 

此时target目录是空的。打开cmd,进入项目所在目录,运行mvn findbugs:findbugs

运行结果如下:

从上图(mvn findbugs:findbugs的运行结果) 来看,maven 并没有运行findbugs,为什么会这样呢?

我们看看findbugs官网是如何说明的:

FindBugs requires JRE (or JDK) 1.5.0 or later to run. However, it can analyze programs compiled for any version of Java, from 1.0 to 1.8. The current version of FindBugs is 2.0.2, released on 10:49:15 EST, 10 December, 2012. We are very interested in getting feedback on how to improve FindBugs. File bug reports onour sourceforge bug tracker

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

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

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

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

解决方法:

(1)mvn clean compile findbugs:findbugs

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

如下图:

 运行完之后,target目录会增加如下文件:findbugsXml.xml

测试结果是xml格式的,不方便查看、展示.

我们希望以html格式来展示findbugs的运行结果(报告),如下图:

 

相关文章
|
3月前
|
Java Maven Android开发
在Eclipse里配置Maven插件
Maven是一款比较常用的Java开发拓展包,它相当于一个全自动jar包管理器,会导入用户开发时需要使用的相应jar包。使用Maven开发Java程序,可以极大提升开发者的开发效率。下面我就跟大家介绍一下如何在Eclipse里安装和配置Maven插件。
48 0
|
4月前
|
存储 Java Maven
IDEA常用插件之类Jar包搜索Maven Search
IDEA常用插件之类Jar包搜索Maven Search
129 0
|
4月前
|
Java Maven
idea Maven Helper插件使用方法
idea Maven Helper插件使用方法
128 0
idea Maven Helper插件使用方法
|
30天前
|
IDE Java Apache
常用 Maven 插件大全
常用 Maven 插件大全
7 0
|
2月前
|
JavaScript Java Apache
【SpringBoot】Maven 版本管理与 flatten-maven-plugin 插件的使用及分析
【SpringBoot】Maven 版本管理与 flatten-maven-plugin 插件的使用及分析
200 0
|
2月前
|
Java 测试技术 Maven
boot项目添加运行参数的maven插件
boot项目添加运行参数的maven插件
32 0
|
2月前
|
Java 测试技术 Maven
单元测试添加运行参数的maven插件
单元测试添加运行参数的maven插件
20 0
|
3月前
|
Java Maven Docker
SpringBoot项目打包部署到阿里云服务器、通过Maven插件制作Docker镜像、部署项目容器、配置生产环境
SpringBoot项目打包部署到阿里云服务器、通过Maven插件制作Docker镜像、部署项目容器、配置生产环境
125 0
|
4月前
|
XML Java 程序员
深入探讨Maven构建生命周期及插件机制
深入探讨Maven构建生命周期及插件机制
51 0
|
4月前
|
前端开发 Java Maven
Maven 插件统一修改聚合工程项目版本号
Maven 插件统一修改聚合工程项目版本号

热门文章

最新文章

推荐镜像

更多