2012年7月微软MVP申请开始啦! CSDN十大风云博客专栏评选结果公布! CSDN博客皮肤评选活动火爆开启!
假设Checkstyle位于全局的classpath中,可以使用如下的taskdef定义:
<taskdef resource="checkstyletask.properties"/>
checkstyle任务的参数:
file:需要检查的文件。
config:指定配置文件。
configURL:指定配置文件的URL。
(config和configURL中必须指定一个)
properties:指定包含扩展属性值的属性文件。
packageNamesFile:指定一个包含配置的package名的文件。
failOnViolation:如果检查出错误时,是否停止。默认为true。
failureProperty:如果发生错误时,需要设置的属性的名称。
maxErrors:允许发生错误ude最大数。默认为0。
maxWarnings:允许发生的警告的最大数。默认值为整型的最大值。
classpath:查询类时使用的类路径。默认为当前classpath。
classpathref:类路径的引用。
嵌套元素:checkstyle任务支持以下的嵌套元素:<fileset>、<classpath>、<formatter>和<property>。其中<formatter>元素的参数如下:
type:生成的输出内容的类型,合法的值包括plain和xml。默认的值为plain。
toFile:将输出写入的文件。默认为标准输出。
useFile:是否将输出写入到文件,默认为true。
<property>元素指定提供扩展属性的值的属性文件。该元素的参数如下:
key:属性的键值。
value:字符串格式的属性的值。
file:文件格式的属性的值。
(value和file参数必须设置一个)
下面是一些例子:
<checkstyle config="docs/sun_checks.xml" file="Check.java"/>
<checkstyle config="/path/to/site/sun_checks.xml">
<fileset dir="src/checkstyle" includes="**/*.java"/>
<!-- Location of cache-file. Something that is project specific -->
<property key="checkstyle.cache.file" file="target/cachefile"/>
</checkstyle>
<checkstyle config="docs/sun_checks.xml">
<fileset dir="src/checkstyle" includes="**/*.java"/>
<formatter type="plain"/>
<formatter type="xml" toFile="build/checkstyle_errors.xml"/>
</checkstyle>
<checkstyle config="docs/sun_checks.xml"
packageNamesFile="myPackageNames.xml"
file="Check.java"/>
<target name="checkstyle"
description="Generates a report of code convention violations.">
<checkstyle config="docs/sun_checks.xml"
failureProperty="checkstyle.failure"
failOnViolation="false">
<formatter type="xml" tofile="checkstyle_report.xml"/>
<fileset dir="src" includes="**/*.java"/>
</checkstyle>
<style in="checkstyle_report.xml" out="checkstyle_report.html" style="checkstyle.xsl"/>
</target>
<!-- run this target as part of automated build -->
<target name="checkstyle-nightly"
depends="checkstyle"
if="checkstyle.failure"
description="Sends email if checkstyle detected code conventions violations.">
<!-- use your own server and email addresses below. See Ant documentation for details -->
<mail from="[email protected]"
tolist="[email protected],[email protected]"
mailhost="mailbox.some.domain"
subject="Checkstyle violation(s) in project ${ant.project.name}"
files="checkstyle_report.html"/>
</target>
Checkstyle的命令行使用方式:
java -D<property>=<value> \
com.puppycrawl.tools.checkstyle.Main \
-c <configurationFile> [-n <packageNameFile>] \
[-f <format>] [-p <propertiesFile>] [-o <file>] \
[-r <dir>] file...
* -n packageNamesFile - 指定使用的package name文件。
* -f format - 指定输出的格式。
* -p propertiesFile - 指定使用的属性文件。
* -o file - 指定输出文件。
* -r dir - 指定需要遍历java文件的目录。
CheckStyle一般配置:(正常情况下,该规则已足够)
CheckStyle与Ant整合