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

 

时间: 2024-10-04 17:36:10

maven 使用findbugs 插件的相关文章

Eclipse插件开发之FindBugs插件

问题提出: 当我们编写完代码,做完单元测试等各种测试后就提交正式运行,只能由运行的系统来检测我们代码是否有问题了,代码中隐藏的错误在系统运行的过程中被发现后,然后再来进行相应的修改,那么后期修改的代价就相当高了. 解决方法: 现在有很多Java代码分析工具,FindBugs中开源项目当中的一个,它可以帮你找到代码中隐藏的一些错误,提升你的代码能力与系统安全可靠性. 安装 JDK:1.5.0 从http://java.sun.com上去下载安装 Eclipse:3.1.1 从http://www.

Zsh(oh-my-zsh)的Maven自动提示插件(zsh-maven-complection)

1.有关插件的小故事(story) 我一直使用Zsh作为日常Shell工具,确切来说是oh-my-zsh,关于zsh我专门写过一篇博客我最喜爱的工具-oh-my-zsh. 从一年前我开始放弃Windows专用Linux(Ubuntu)作为开发环境,其中强大的Shell最吸引我的最主要因素:关于Linux之前也写过一篇博文我是如何在Linux(Ubuntu)上工作的?. 这个插件的主页:https://github.com/juven/maven-bash-completion 说起这个插件得从认

maven的eclipse插件运行不正常如何解决

最近重新开始搞java源代码的分析工具,其中用到了eclipse的jdt来直接分析java源代码.用maven添加了org.eclipse.jdt.core包之后,发现代码写完之后不能运行,有一些依赖无法找到.搜索了下貌似是因为从maven中央仓库下载的jdt和其依赖包都有小版本号,导致maven的依赖管理找不到这写包了(都不知道为什么能够下载下来,却不能加入到依赖中).具体情况的描述,和这里的相同. 找了半天,发现maven的eclipse有个很强大的功能,就是把eclipse目录中的插件都安

maven之打包插件(maven-assembly-plugin,maven-shade-plugin与maven-assembly-plugin)

一. 介绍 maven提供的打包插件有如下三种: plugin function maven-jar-plugin maven 默认打包插件,用来创建 project jar maven-shade-plugin 用来打可执行包,executable(fat) jar  maven-assembly-plugin  支持定制化打包方式,例如 apache 项目的打包方式 每种打包方式都具有自己的应用场景. 二. 打包准备 1). 需要设定文件的编码格式(如果不设定,将会以系统的默认编码进行处理)

Maven中测试插件(surefire)的相关配置及常用方法

原创文章,版权所有,允许转载,标明出处:http://blog.csdn.net/wanghantong 1. 在Maven中配置测试插件surefire <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.17</version> </plugin

阿里云oss的maven上传插件

阿里云oss上传插件,用于上传cdn文件(js.css.图片等) example1, 上传源码路径 <plugin> <groupId>com.fengjx.maven.cdn</groupId> <artifactId>maven-cdn-alioss-plugin</artifactId> <version>1.0.0</version> <configuration> <endpoint>ht

Maven 集成Tomcat插件

国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为"中国PE第一股",市值超1000亿元.  ------------------------------------------------------------------------------

Tuscany的java静态模型类maven生成工具插件使用介绍

我们可以通过tuscany提供的生成工具插件将SDO定义生成为实际需要的java类,为工作提供便利,以下是使用此插件的样例配置: <plugin> <groupId>org.apache.tuscany.sdo</groupId> <artifactId>tuscany-sdo-plugin</artifactId> <executions> <execution> <id>simple</id>

请问Myeclipse如何安装findbugs插件

问题描述 我用Eclipse的安装方法试过了,但是在工程右键的菜单中没有出现...哪位装过,麻烦指点一下吧 解决方案 解决方案二:在帮助里看加载了没有,另外看log里的加载信息直接放到plugins目录下就成了不行,再解压开放进去.解决方案三:mark解决方案四:找到configuration文件夹,将里面的org.eclipse.update删掉,然后重启myeclipse试一下解决方案五:楼主看看解决方案六:http://findbugs.cs.umd.edu/eclipse在线安装.哈哈解