概述:
由于项目对代码格式有严格要求,而又不能人工一一去检查代码书写是否符合格式要求,所以引用了一个eclipse的Checkstyle插件来检查代码的格式,这样当你书写完一行代码之后,eclipse的Checkstyle插件会立即检查你的代码是否符合所设定的格式(确切的说,是当你写完一行代码,保存,然后编译器在编译的时候就会检查你的代码是否符合Checkstyle约束),效果如下:
不仅编辑器里面会自动显示Checkstyle violations,而且Problems 视图里面也会自动violations。
此外Maven中也包含有Checkstyle的插件,如果你在POM文件中配置了Checkstyle插件,当你做maven build的时候,也会产生相应的Checkstyle的报告,效果如下:
Checkstyle的Eclipse插件有很多种,但是比较好用的叫eclipse-cs,可以从如下网址获取Checkstyle的Update网址或安装包, http://eclipse-cs.sourceforge.net/downloads.html
再按照Eclipse的插件安装方式安装好插件。
本人使用的是Rational Application Developer 7.5, checkstyle的版本为4.3.0 ,下载了Checkstyle的zip 包解压,直接把features和plugins的内容放到了 RAD7.5 安装目录的SDP目录下。
如果成功安装,会在Eclipse的WindowàPreferences中看到有Checkstyle的选项,效果如下:
打开windowàPreferencesàCheckstyle
点击New来新建一个项目相关的约束配置
Type 选择Internal Configuration
(如果要重用别的项目已经的导出的Checkstyle的configuration配置文件,则可以选择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上会有一个小绿勾,并且右边会多出一条,则表示添加成功。
新建一个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 注释后,该错误提示消失:
parent project的POM文件中
在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>
以上就是Eclipse中Checkstyle插件的配置和使用,如果想要查询详细的配置规则,可以自行查阅相关网站。