Java之检查工具

静态代码分析

静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等。

主流Java静态分析工具

  • CheckStyle
    • Checkstyle是SourceForge的开源项目,通过检查对代码编码格式、命名约定、Javadoc、类设计等方面进行代码规范和风格的检查,从而有效约束开发人员更好地遵循代码编写规范。
    • 特点:检查源文件,主要关注格式
  • FindBugs
    • FindBugs是由马里兰大学提供的一款开源Java静态代码分析工具。FindBugs通过检查类文件或JAR文件,将字节码与一组缺陷模式进行对比从而发现代码缺陷,完成静态代码分析。
    • 特点:基于Bugs Patterns概念,检查.class文件中的潜在Bug
  • PMD
    • PMD是由DARPA在SourceForge上发布的开源Java代码静态分析工具。PMD通过其内置的编码规范对Java代码进行静态检查,主要包括对潜在的bug,未使用的代码,重复代码,循环体创建新对象等问题的检验。
    • 特点:基于静态规则集,检查源文件中的潜在问题

IDEA相关插件及使用方式

QAPlug

  • QAPlug - CheckStyle
  • QAPlug - FindBugs
  • QAPlug - PMD

插件使用,IDEA中Plugins搜索QAPlug:

image-20201118133300277

安装完成插件后,重启IDEA,点击菜单栏”Analyze Code” –> “Analyze Code”

image-20201118141058259

image-20201118141150105

代码结果分析

  • Efficiency 效能

  • Maintainability 可维护性

  • Reliability 可靠性

  • Usability 可用性

image-20201118141418547

Alibaba Java Coding Guidelines 阿里的代码规约

Plugs中安装该插件

SonarQube

SonarQube是一个用于代码质量管理的开源平台,用户管理源代码的质量。支持七个维度,二十几种编程语言。

通过自动代码审查工具,可检测代码中的错误,漏洞和代码异味。可以与您现有的工作流集成,以实现跨项目分支和请求的连续代码检查。

主要功能

  • 通过插件机制,可以集成不同测试/分析/集成工具
  • 通过量化的方式度量代码质量变化,从而进行代码质量管理
  • 提供接口支持,可以方便的在持续集成中使用

工作原理

点击查看源网页