QAPlug-代码检查插件

QAPlug是一系列代码检查插件。

  • QAPlug - FindBugs

FindBug 是一款开源的 Java 代码检查工具,遵循 GNU 公共许可协议。它可以检查 Java 类或者 JAR 文件,运行的是 Java 字节码而不是源码,检查原理是:将字节码与一组缺陷模式进行对比来发现可能存在的问题,这些问题包括空指针引用、无限递归循环、死锁等。

具体规则配置参考FindBugs Bug Descriptions

样例:

<?xml version="1.0" encoding="UTF-8"?>
<FindBugsFilter>
  <Match>
    <!--QAPlug severity=major-->
    <Bug pattern="AM_CREATES_EMPTY_JAR_FILE_ENTRY" />
  </Match>
</FindBugsFilter>
  • QAPlug - CheckStyle

代码样式风格检查,专门检查代码规范风格的,比如缩进,换行操作,命名。每个人都有自己的style,导致整个项目的代码不仅存在不符合语言规范的情况,而且读起来非常困难。因此,这样的项目中都会引入Checkstyle,来规范大家的编码风格,尽量做到统一和合理。

具体规则配置参考checkstyle – Checks (sourceforge.io)

样例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC
        "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
        "https://checkstyle.org/dtds/configuration_1_3.dtd">

<module name = "Checker">
  <property name="charset" value="UTF-8"/>
  <property name="severity" value="warning"/>
  <property name="severity" value="warning" />
  <property name="localeCountry" value="CN" />
  <property name="localeLanguage" value="zh" />
  <property name="charset" value="UTF-8" />
  <property name="fileExtensions" value="java" />
  <property name="tabWidth" value="2" />
  <module name="LineLength">
    <metadata name="net.sf.eclipsecs.core.comment" value="检查每行长度, 每行长度不得超过150。"/>
    <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://" />
    <property name="max" value="150"/>
    <property name="tabWidth" value="2" />
  </module>
  <module name="FileLength">
    <property name="severity" value="error"/>
    <property name="max" value="1000"/>
  </module>
</module>
  • QAPlug - PMD

PMD是一款采用BSD协议发布的Java程序代码检查工具。该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。该软件功能强大,扫描效率高,是Java程序员debug的好帮手。

具体规则配置参考Java Rules PMD Source Code Analyzer

样例:

<?xml version="1.0"?>
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="rules" xmlns="http://pmd.sf.net/ruleset/1.0.0"
         xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
         xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
  <description>PMD rules</description>

  <rule ref="rulesets/java/basic.xml">
    <exclude name="AvoidUsingHardCodedIP"/>
    <!--flaw/buggy rules-->
    <exclude name="CheckResultSet"/>
  </rule>
 </ruleset>
  • QAPlug

这个插件是汇集这前面说的3个插件的结果,不用每次都运行3个插件分别排错,一键运行3个,同时汇总整合,非常方便。

1.安装方式

File – Settings ,选择Plugins,搜索QA,点击Install plugin 进行安装,共需要安装4个插件,QAPlug, QAPlug-Checkstyle, QAPlug-FindBugs, QAPlug-PMD 安装完成后重启即可

QAPlug

2.导入自定义profile

除了默认配置外,还可以新建,导入和导出自定义配置。

file->Settings ->QAPlug->Coding Rules-> add

import-profile

3.分析代码

右键项目选择Analyze –》Analyze Code, 可选择分析范围和配置文件。

Analyze

Analysis-scope

4.代码分析结果

此工具主要能找到代码质量5个方向问题:

1)efficient(性能问题)

2)maintainability(可维护性)

3)portability(可移植性)

4)reliability(可靠性)

5)usability(可用性)

Analysis-results

其他问题

编译项目报异常:Malformed argument has embedded quote

添加代码审查工具 findbugs后,本来项目正常,但是安装后,重新编译项目报

Malformed argument has embedded quote

查找后按以下方法可以编译正常

在Help 中选择 Edit Custom VM Options 配置内容里添加一行

-Djdk.lang.Process.allowAmbiguousCommands=true

之后重启 IDEA,问题就能解决。

留下评论