CheckStyle

Posted 路迢迢

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CheckStyle相关的知识,希望对你有一定的参考价值。

  • 介绍

    CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员从这项重要,但是枯燥的任务中解脱出来。

    现在就来看看CheckStyle,从安装、checkstyle规范的编写及配置。

  • 安装CheckStyle插件

    要使用 checkstyle 需要安装一个 插件 CheckStyle-IDEA,可以通过在线安装插件的方式去安装,如下图: 

    技术分享图片

  • 配置 checkstyle 文件

    当安装好插件,打开 IDEA的设置页面 settings -> Other Settings 你会发现默认的 Checkstyle , 勾选就OK了,如下图。

    技术分享图片

    其实在还可以点击上面绿色加号添加自定义checkstyle文件,该文件放在项目的根目录。在里面可以设置你想要的格式,如第一次跟我一样不会写的这里有个华为 CheckStyle文件自己可以去看。

    如果不想向上面那样每次手动的去添加加载的话,可以用代码来加载,可以在项目的.idea文件中添加checkstyle-idea.xml和codesStyleSettings.xml两个文件:

    技术分享图片

  • checkstyle-idea.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="CheckStyle-IDEA">
    <option name="configuration">
      <map>
        <entry key="active-configuration" value="PROJECT_RELATIVE:$PRJ_DIR$/checkstyle.xml:Google Checkstyle rules" />
        <entry key="checkstyle-version" value="7.7" />
        <entry key="location-0" value="PROJECT_RELATIVE:$PRJ_DIR$/checkstyle.xml:Google Checkstyle rules" />
        <entry key="location-1" value="CLASSPATH:/sun_checks.xml:The default Checkstyle rules" />
        <entry key="scan-before-checkin" value="false" />
        <entry key="scanscope" value="JavaOnly" />
        <entry key="suppress-errors" value="false" />
        <entry key="thirdparty-classpath" value="" />
      </map>
    </option>
  </component>
</project>
  • codesStyleSettings.xml
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="ProjectCodeStyleSettingsManager">
    <option name="PER_PROJECT_SETTINGS">
      <value>
        <option name="IMPORT_LAYOUT_TABLE">
          <value>
            <package name="java" withSubpackages="true" static="false" />
            <package name="javax" withSubpackages="true" static="false" />
            <emptyLine />
            <package name="" withSubpackages="true" static="false" />
            <emptyLine />
            <package name="" withSubpackages="true" static="true" />
          </value>
        </option>
        <codeStyleSettings language="JAVA">
          <option name="RIGHT_MARGIN" value="120" />
          <option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true" />
          <option name="SPACE_BEFORE_ANNOTATION_ARRAY_INITIALIZER_LBRACE" value="true" />
          <option name="IF_BRACE_FORCE" value="3" />
          <option name="DOWHILE_BRACE_FORCE" value="3" />
          <option name="WHILE_BRACE_FORCE" value="3" />
          <option name="FOR_BRACE_FORCE" value="3" />
          <indentOptions>
            <option name="INDENT_SIZE" value="2" />
            <option name="CONTINUATION_INDENT_SIZE" value="4" />
            <option name="TAB_SIZE" value="2" />
          </indentOptions>
        </codeStyleSettings>
      </value>
    </option>
    <option name="USE_PER_PROJECT_SETTINGS" value="true" />
  </component>
</project>

自定义的checkstyle还需要在Maven pom.xml中配置就OK了,如下图:

  • pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

......

  <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>2.17</version>
                <configuration>
                    <configLocation>checkstyle.xml</configLocation>
                    <encoding>UTF-8</encoding>
                    <consoleOutput>true</consoleOutput>
                    <failsOnError>true</failsOnError>
                    <violationSeverity>warning</violationSeverity>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>com.puppycrawl.tools</groupId>
                        <artifactId>checkstyle</artifactId>
                        <version>7.8</version>
                    </dependency>
                </dependencies>
            </plugin>

            ......
        </plugins>
    </build>
</project>

 

到此,基本的配置就完毕了。现在 IDEA的控制面板会多一个 CheckStyle,你可以在这里方便的进行代码检查。可以点击面板的左上角下拉框 Rules 去动态切换不同的 checkstyle。

技术分享图片

 

以上是关于CheckStyle的主要内容,如果未能解决你的问题,请参考以下文章

CheckStyle检查规则模板说明

maven配置checkstyle插件对代码规范进行静态检查

Java代码规范和质量检查插件-Checkstyle(官方资源)

在 Checkstyle 中使用 IntelliJ 代码样式

Eclipse中的checkstyle是做啥的,啥时候需要用到?

CheckStyle