代码静态分析工具--PMD,Findbugs,CheckStyle
最近学习Mybatis的官方文档,看到了【项目文档】一节有很多内容没有见过,做个笔记,理解一下。
PMD 扫描Java源代码,查找潜在的问题,如:
- 可能的bugs,如空的try/catch/finally/switch声明
- 死亡的代码,没有使用的本地变量,参数和私有方法
- 不合标准的代码,如String/StringBuffer用法
- 过于复杂的表达式,如不必要的if表达式
- 重复的代码,拷贝、粘贴的代码
FindBugs 它用来查找Java代码中存在的bug。它使用静态分析方法标识出Java程序中上百种潜在的不同类型的错误。
Checkstyle 它定义了一系列可用的模块,每一个模块提供了严格程度(强制的,可选的…)可配置的检查规则。规则可以触发通知(notification),警告(warning)和错误(error)。
现在有很多查看这些工具的处理结果的方式:
- XML格式:这些工具都可以产生XML文件,这些XML文件能用来产生HTML报表或者是被别的工具用来浏览分析的结果。
- HTML格式:HTML格式是最受欢迎的产生报表和团队间分享的的方式,你也可以用xsl表格创建你自己的报表。
- IDE插件:几乎所有叫得上名字的IDE都给这些工具提供了插件,这使得发现源码中存在的所有问题几乎变成可能。
代码质量工具的一个问题是,它们有时候会给开发者提示很多不是错误的错误-也叫做假阳性(false positives)。当这种情况发生的时候,开发者可以学着忽略工具的输出信息,或者是把这些输出全部抛弃掉。
为了更好的利用这些工具的输出结果,给开发者一个更有用的视图,最好是有一种只关注我们想要的东西的方式。本文中,我们将找出其他有趣的方式来更好的利用所有这些有名的Java静态分析工具的输出结果,然后可以像查询数据库那样查询这些结果。
JArchitect和CQLinq
JArchitect是另一个静态分析工具,它弥补了其他工具(的不足),它是使用一种基于Linq(CQLinq)的代码查询语言像查询数据库那样来查询代码。
JArchitect3的以前版本,只能查询从JArchitect提取出来的分析数据,但是从JArchitect4开始,可以把许多其他静态分析工具的输出结果包含进来,然后使用CQLinq做查询。
这个是项目经理用来统计工作量的吧,哈哈。
参考:如何更好地利用Pmd、Findbugs和CheckStyle分析结果
代码静态分析工具--PMD,Findbugs,CheckStyle的更多相关文章
- 代码静态分析工具PC-LINT安装配置
代码静态分析工具PC-LINT安装配置--step by step 作者:ehui928 ...
- C++ 代码静态分析工具cppcheck【转】
转自:http://blog.csdn.net/chen19870707/article/details/42393217 权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] c ...
- 代码静态分析工具-splint的学习与使用[转]
代码静态分析工具--splint的学习与使用[转] 引言 最近在项目中使用了静态程序分析工具PC-Lint,体会到它在项目实施中带给开发人员的方便.PC-Lint是一款针对C/C++语言.window ...
- PHP代码静态分析工具PHPStan
最近发现自己写的PHP代码运行结果总跟自己预想的不一样,排查时发现大多是语法错误,在运行之前错误已经种下.可能是自己粗心大意,或者说php -l检测太简单,不过的确是有一些语法错误埋藏得太深(毕竟PH ...
- C/C++代码静态分析工具调研
C/C++代码静态分析工具调研 摘自:https://www.jianshu.com/p/92886d979401 简述 静态分析(static analysis)是指在不执行代码的情况下对其进行分析 ...
- Eclipse插件(导出UML图,打开文件资源管理器插件,静态代码分析工具PMD,在eclipse上安装插件)
目录 能够导出UML图的Eclipse插件 打开文件资源管理器插件 Java静态代码分析工具PMD 如何在eclipse上安装插件 JProfiler性能分析工具 从更新站点安装EclEmma 能够导 ...
- PMD-Java代码静态分析工具使用
如今,使用代码分析工具来代替人工进行代码审查,已经是大势所趋了.用于Java代码检测的工具中,不乏许许多多的佼佼者,其中PMD就是其中一款.PMD既可以独立运行,也可以以命令行的形式运行,还可以作为插 ...
- 静态代码检查工具-PMD初学者入门篇
前言: PMD是一款静态代码分析工具,它能够自动检测各种潜在缺陷以及不安全或未优化的代码. PMD更多地是集中在预先检测缺陷上,它提供了高度可配置的丰富规则集,用户可以方便配置对待特定项目使用那些规则 ...
- 代码静态分析工具——splint的学习与使用
引言 最近在项目中使用了静态程序分析工具PC-Lint,体会到它在项目实施中带给开发人员的方便.PC-Lint是一款针对C/C++语言.windows平台的静态分析工具,FlexeLint是针对其他平 ...
随机推荐
- 【源码下载】分享一个支持自安装自卸载的Windows服务
NetworkComms网络通信框架序言 这个程序来自 www.codeproject.com 具体的出处就忘了 服务器端的程序,我一般采用在windows服务中调用打开的方式,这样既能看到界面,又 ...
- 腾讯大规模Hadoop集群实践 [转程序员杂志]
TDW(Tencent distributed Data Warehouse,腾讯分布式数据仓库)基于开源软件Hadoop和Hive进行构建,打破了传统数据仓库不能线性扩展.可控性差的局限,并且根据腾 ...
- 转: CSS中overflow的用法
Overflow可以实现隐藏超出对象内容,同时也有显示与隐藏滚动条的作用,overflow属性有四个值:visible (默认), hidden, scroll, 和auto.同样有两个overflo ...
- POJ 3299 Humidex 难度:0
题目链接:http://poj.org/problem?id=3299 #include <iostream> #include <iomanip> using namespa ...
- matlab 画框(一)
matlab进行图像处理之后,很多时候需要在图像上画出矩形框:如,调用matlab的某个检测函数,得到结果之后,往往需要将检测结果的矩形框画在图像上,直观.方便的进行查看:下面的代码就是这个目的: f ...
- .net 小技巧
简单提示效果: <input runat="server" type="text" id="SelPerson" value=&quo ...
- SharePoint 2013 Nintex Workflow 工作流帮助(八)
博客地址 http://blog.csdn.net/foxdave 工作流动作 15. Complete Workflow Task(User interaction分组) 此工作流动作将完成任何进行 ...
- SharePoint开发 - 自定义导航菜单(一)菜单声明与配置
博客地址 http://blog.csdn.net/foxdave 本篇描述自定义sharepoint菜单的一种方式,自定义菜单适用于一些门户等需求的网站 自定义的菜单有自己的数据源,可以是数据表,可 ...
- Struts2标签<s:textfield/>
中的name="",取值顺序是,如不加#,先从root中栈顶取,没有取到(即使栈顶有这个属性但是属性为空还是向下取,这点和el表达式不同)就去actioncontext的map中取 ...
- PAT 10-0 说反话
我写了两种实现方法,其中第二种是参考Yomman园友的(http://www.cnblogs.com/yomman/p/4271949.html).我的方法(方法一)是用一个数组存放输入的字符串,另一 ...