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

 

相关文章
|
4月前
|
XML Java Maven
maven总结三: 常用插件
maven总结三: 常用插件
47 3
|
16天前
|
Java 编译器 测试技术
|
4月前
|
Java 测试技术 Maven
Maven 插件
Maven包含clean、default(build)、site三大生命周期,分别处理项目清理、部署和文档创建。每个生命周期由多个阶段组成,充当标准化接口,实际工作由插件执行。例如,`mvn clean`调用的是clean生命周期的clean阶段,其实现由maven-clean-plugin插件完成。Maven是一个依赖插件的框架,插件负责任务如生成jar/war、编译、测试、文档和报告。通过`mvn plugin-name:goal-name`命令执行插件目标。
|
3月前
|
Java Maven Spring
Maven重打包问题之maven-shade-plugin插件对于重复的class文件会如何处理
Maven重打包问题之maven-shade-plugin插件对于重复的class文件会如何处理
|
3月前
|
Java jenkins 持续交付
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
jenkins学习笔记之十七:使用插件及maven上传制品到nexus
|
4月前
|
Java Maven
idea安装并使用maven依赖分析插件:Maven Helper
idea安装并使用maven依赖分析插件:Maven Helper
2366 7
|
4月前
|
数据可视化 Java 程序员
IDEA插件-Maven Helper
Maven Helper是一个用于Apache Maven项目的IntelliJ IDEA插件,它提供了一些有用的功能来帮助开发人员更好地管理和调试Maven项目。
498 0
IDEA插件-Maven Helper
|
3月前
|
Java Maven 开发者
"揭秘IDEA的神奇助手:Maven Helper插件,让你轻松驾驭复杂依赖,告别冲突噩梦!"
【8月更文挑战第20天】Maven Helper是一款提升Java开发者工作效率的IDEA插件,它能直观展示项目依赖关系并协助管理。主要功能包括依赖树视图、冲突检测与解决及依赖排除。安装简便,重启IDEA后即用。借助其“Dependencies”面板,开发者可以清晰了解依赖详情,快速定位并解决冲突问题,有效优化项目结构,提升开发效率。
195 0
|
4月前
|
Java 测试技术 Maven
Maven 插件
Maven包含clean、default/build、site三个生命周期,用于清理、构建和文档创建。每个生命周期由多个阶段构成,作为标准化步骤。比如`mvn clean`调用Clean生命周期的clean阶段,其实体实现是maven-clean-plugin。Maven依赖插件执行任务,如生成jar/war、编译、测试、文档等。插件通过`mvn plugin-name:goal-name`形式执行特定目标。
|
4月前
|
Java 测试技术 Maven
Maven 插件
Maven包含clean、default/build和site三大生命周期,各周期由一系列阶段组成,如mvn clean执行Clean生命周期的clean阶段。实际工作由插件如maven-clean-plugin完成。Maven是插件驱动的框架,用于任务如生成jar/war、编译、测试、文档和报告。插件目标通过`mvn plugin-name:goal-name`调用。