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的运行结果(报告),如下图:

 

相关文章
|
19天前
|
XML Java Maven
Maven资源拷贝插件和常用依赖
Maven资源拷贝插件和常用依赖
29 0
|
19天前
|
XML Java 应用服务中间件
Maven配置tomcat插件
Maven配置tomcat插件
20 0
|
19天前
|
Java 编译器 Maven
Maven编译器插件局部和全局配置
Maven编译器插件局部和全局配置
18 1
Maven编译器插件局部和全局配置
|
1月前
|
JSON Java 应用服务中间件
Maven集成Tomcat插件+远程热部署项目
插件和依赖的区别: 依赖:运行时开发时都需要用到的jar包,比如项目中需要一个Json的jar包,就要添加一个依赖,这个依赖在项目运行时也需要,因此在项目打包时需要把这些依赖也打包进项目里; 插件:在项目开的发时需要,但是在项目运行后就不再需要,因此在项目开发完成后不需要把插件打包进项目中,例如接下来演示的Tomcat插件就是用来部署Web项目的,部署成功
|
2月前
|
Java 测试技术 Apache
【Maven三】——maven生命周期和插件
【Maven三】——maven生命周期和插件
47 0
【Maven三】——maven生命周期和插件
|
3月前
|
Java Maven
Maven项目打包版本号管理——Maven Project Version插件
Maven项目打包版本号管理——Maven Project Version插件
371 0
|
3月前
|
XML Java Maven
maven中添加tomcat7插件动态模板
maven中添加tomcat7插件动态模板
|
3月前
|
Java 编译器 Apache
【Maven冷知识】Compiler插件
【Maven冷知识】Compiler插件
62 0
|
3月前
|
Java Maven
Maven编译插件
Maven编译插件
相关产品
云迁移中心
推荐文章
更多
推荐镜像
更多