`
yuyujulin
  • 浏览: 11204 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

代码格式检查工具Checkstyle

阅读更多

概述:

由于项目对代码格式有严格要求,而又不能人工一一去检查代码书写是否符合格式要求,所以引用了一个eclipseCheckstyle插件来检查代码的格式,这样当你书写完一行代码之后,eclipseCheckstyle插件会立即检查你的代码是否符合所设定的格式(确切的说,是当你写完一行代码,保存,然后编译器在编译的时候就会检查你的代码是否符合Checkstyle约束),效果如下:

不仅编辑器里面会自动显示Checkstyle violations,而且Problems 视图里面也会自动violations

 

此外Maven中也包含有Checkstyle的插件,如果你在POM文件中配置了Checkstyle插件,当你做maven build的时候,也会产生相应的Checkstyle的报告,效果如下:

1          CheckstyleEclipse插件使用

1.1         Checkstyle插件的安装

CheckstyleEclipse插件有很多种,但是比较好用的叫eclipse-cs,可以从如下网址获取CheckstyleUpdate网址或安装包, http://eclipse-cs.sourceforge.net/downloads.html

再按照Eclipse的插件安装方式安装好插件。

本人使用的是Rational Application Developer 7.5 checkstyle的版本为4.3.0 ,下载了Checkstylezip 包解压,直接把featuresplugins的内容放到了 RAD7.5 安装目录的SDP目录下。

如果成功安装,会在EclipseWindowàPreferences中看到有Checkstyle的选项,效果如下:

1.2         建立约束规则

打开windowàPreferencesàCheckstyle

点击New来新建一个项目相关的约束配置

Type 选择Internal Configuration

(如果要重用别的项目已经的导出的Checkstyleconfiguration配置文件,则可以选择External Configuration file 或者Project Relative Configuration,然后再Browse选中相关的约束文件,此处我们第一次使用,所以先建立一个新的Internal Configuration配置,以后再导出配置文件备用)

Name 输入JAVA_CHECKS

下面就可以新建一个具体的规则了

选中刚刚新建的 JAVA_CHECKS,点击Configure… 弹出Checkstyle Configuration 窗口,如下:

左边的Known modules 列出的是已知模块,通常我们需要的都在里面,只需要选中相关模块,点击Add… 按钮即可。

下面以一个规则为例来讲解如何添加规则:

要求:所有的方法必须添加Javadoc comments

操作:

Javadoc CommentsàMethod Javadocà Add…

Comments: 输入Need add java doc for methods

Serverity:选择error,表示如果有违规将会报错,编译将不能通过(如果设置为warning级别,则有违规也可以编译通过)

点击OK. Method Javadoc上会有一个小绿勾,并且右边会多出一条,则表示添加成功。

 

1.3         Checkstyle的使用

新建一个Java Project

在其上右击选择Properties

1. 打开Checkstyle

2. 勾选Checkstyle active for this project

3. 不选 Use simple configuration

4. 选中列表中的file set

5. 点击Edit

6. Check Configurations 下拉为上面新建的JAVA_CHECKS

7. 因为我们只对java文件做检查,所以选中下面的点“. 所代表的正则表达式,点击Edit…

将其修改为.java$,这样Checkstyle 只会检查那些以java结尾的文件。

如果想要某个文件不参与Checkstyle的检查,则可以New一个正则表达式来,并将Include 去选。如下

点击Ok.

 

 

新建一个类Test类和NoCheck 类,两个都加入一个方法,当该Test类的方法没有javadoc 注释的时候Checkstyle会报Missing a Javadoc comment 的错,而NoCheck类却不报(因为我们已经剔除这个文件参与Checkstyle的检查了),如下:

当为该Test类的方法加入javadoc 注释后,该错误提示消失:

 

2          CheckstyleMaven插件使用

parent projectPOM文件中

 

build modules节点之间加入如下reporting节点:

       <build>

    </build>

 

    <reporting>

       <plugins>

           <plugin>

              <groupId>org.apache.maven.plugins</groupId>

              <artifactId>maven-checkstyle-plugin</artifactId>

              <version>2.3</version>

              <configuration>

                  <configLocation>${basedir}/../build/aiaa_checkstyle_java.xml</configLocation>

                  <suppressionsLocation>${basedir}/checkstyle-suppressions.xml</suppressionsLocation>

              </configuration>

           </plugin>

 

       </plugins>

    </reporting>

 

<modules>

</modules>

 

plugins 节点内加上checkstyle插件

 

              <plugin>

              <groupId>org.apache.maven.plugins</groupId>

              <artifactId>maven-checkstyle-plugin</artifactId>

              <version>2.3</version>

              <executions>

                  <execution>

                     <phase>process-sources</phase>

                     <goals>

                         <goal>checkstyle</goal>

                         <goal>check</goal>

                     </goals>

                     <configuration>

                         <enableRulesSummary>true</enableRulesSummary>

                     </configuration>

                  </execution>

              </executions>

           </plugin>

                 

 

3          总结

以上就是EclipseCheckstyle插件的配置和使用,如果想要查询详细的配置规则,可以自行查阅相关网站。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics