`
nanjingjiangbiao_T
  • 浏览: 2689797 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Ant下使用checkstyle全攻略

 
阅读更多
来源:配置管理之路(http://bbs.scmroad.com) 作者:laofo

本来,我以为在ant下配置checkstyle是很容易的事情.结果却并非我想象. 下面是一些提示,和一些问题的排错过程.

Checkstyle项目主页:
http://checkstyle.sourceforge.net


先看一下checkstyle的概述
Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this boring (but important) task. This makes it ideal for projects that want to enforce a coding standard.
Checkstyle is highly configurable and can be made to support almost any coding standard. An example configuration file is supplied supporting the Sun Code Conventions. As well, other sample configuration files are supplied for other well known conventions.
简单的说就是检查代码规范的.详细的就看主页了: P


下面我们讲怎么在Ant下使用checkstyle.
1. 到checkstyle主页下载checkstyle的安装包
2. 解压之后我们会看到很多文件
其中
checkstyle-5.0-beta01.jar
checkstyle-all-5.0-beta01.jar
是运行checkstyle不可缺少的
sun_checks.xml
是sun公司的代码规范(我们暂时可以利用sun公司的代码规范检查自己的代码,当然我们也可以针对各个公司的不同标准进行定制)
我们还能在contrib目录下看到好多的xsl文件
选择一个就好了,这些文件是为了正确显示检查后的结果用的. 它们规定了怎么去显示检查结果, 样式表.
我选择的是/contrib/checkstyle-frames.xsl 这个文件,把它重命名为checkstyle.xsl, 然后
所以我们得到了四个文件


  • checkstyle-5.0-beta01.jar
  • checkstyle-all-5.0-beta01.jar
  • sun_checks.xml
  • /contrib/checkstyle-frames.xsl



我们还是选取Cruisecontrol自带的项目conneectfour.当然你也可以选择其它的项目.
3. 我们把上边提到的两个jar包放到项目的lib下面
/lib/checkstyle-5.0-beta01.jar
/lib/checkstyle-all-5.0-beta01.jar

4 设置检查规范
在connectfour根目录下建立一个docs的目录,然后把sun_checks.xml放进去
/docs/sun_checks.xml

5 修改build.xml,加入checkstyle任务
我们打开这个项目的构建文件build.xml
加入一下代码
<property name="checkstyle.dir"
value="${basedir}\lib"/>
<path id="checkstyle.dir">
<fileset dir="${checkstyle.dir}">
<include name="*.jar"/>
</fileset>
</path>
<taskdef name="checkstyle"
classname="com.puppycrawl.tools.checkstyle.CheckStyleTask" classpathref="checkstyle.dir" />
<target name="checkstyle" depends="clean, update,compile,test"
description="Generates a report of code convention violations.">
<mkdir dir="target/check-results"/>
<checkstyle config="docs/sun_checks.xml"
failureProperty="checkstyle.failure"
failOnViolation="false">
<formatter type="xml" tofile="target/check-results/checkstyle_report.xml"/>
<fileset dir="src" includes="**/*.java"/>
</checkstyle>
<style in="target/check-results/checkstyle_report.xml" out="target/check-results/checkstyle_report.html" style="checkstyle.xsl"/>
</target>


6 运行checkstyle 任务
我们在这个项目的根目录下运行ant checkstyle,如果没有错误,证明checkstyle成功运行,这个时候会有一个checkstyle_report.html在target/check-results目录下产生.我们可以用浏览器打开这个html文件就会看到这次检查的结果.


FAQ:

如果你能一次运行成功,那当然很幸运了,可是我在搭建的时候遇到了很多错误.我把我如何解决的记录下来和大家分享.甚至有的错误现在还没有解决,只是采取了一些折衷的方法.

问题1
D:\DevEnv\CruiseControl\projects\connectfour-svn\build.xml:77: Only one of the attributes name, file and resource can be set

如果我们这个样子定义checkstyle就会产生上边那个错误
<taskdef resource="checkstyletask.properties" classpath="./lib/checkstyle-all-5.0-beta01.jar" />

不知道什么原因.等以后找到为什么了再来补上.


<taskdef name="checkstyle"
classname="com.puppycrawl.tools.checkstyle.CheckStyleTask" classpathref="checkstyle.dir" />
定义成这个样子也不行.所以我借鉴了我定义svnant的方式,如下定义了checkstyle,终于能通过了.思路就是先定义checkstyle的目录,然后再引入.这样做就可以了.

<property name="checkstyle.dir"
value="${basedir}\lib"/>
<path id="checkstyle.dir">
<fileset dir="${checkstyle.dir}">
<include name="*.jar"/>
</fileset>
</path>
<!--
<taskdef name="checkstyle"
classname="com.puppycrawl.tools.checkstyle.CheckStyleTask" classpathref="checkstyle.dir" />
-->
<taskdef name="checkstyle"
classname="com.puppycrawl.tools.checkstyle.CheckStyleTask" classpathref="checkstyle.dir" />



问题2:
D:\DevEnv\CruiseControl\projects\connectfour>ant checkstyle
Buildfile: build.xml
checkstyle:
BUILD FAILED
D:\DevEnv\CruiseControl\projects\connectfour\build.xml:75: Unable to create a Checker: cannot initialize module PackageHtml - Unable to instantiate PackageHtml

Total time: 0 seconds


我google这个错误的信息,得到以下的一些帮助内容.
http://checkstyle.sourceforge.net/5.x/config_javadoc.html#JavadocPackage

JavadocPackage
Description

Checks that each Java package has a Javadoc comment. By default it only allows a package-info.java file, but can be configured to allow a package.html file.
An error will be reported if both files exist as this is not allowed by the Javadoc tool.


经上边的提示,我打开sun_checks.xml文件
把检查package.html文件是否存在的一句给注释掉了.
<!-- Checks that a package.html file exists for each package. -->
<!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml -->


<!--注释掉下边这句

<module name="PackageHtml"/>
-->

问题3
nt最简单的构建已经成功,但在命令行运行ant -verbose时出现如下内容:
[antlib.org.apache.tools.ant]Could not load definitions from resource org/apache/tools/ant/antlib.xml.It could not be found.

Baidu后得来的一个土方法
[此问题的推荐答案]
1. Copied the ant.jar to any new/temp folder.
2. Extracted the jar using jar xvf <jar name> to the same folder.
3. Copied the file antlib.xml from
"org/apache/tools/ant/types/conditions/antlib.xml" to
org/apache/tools/ant/antlib.xml.
4. Then updated the ant.jar with the file "org/apache/tools/ant/antlib.xml"
5. Placed the updated ant.jar to the $ANT_HOME/lib
这个办法比较野蛮,但能解决问题

内容可以在下面的链接找到:
http://bbs.zdnet.com.cn/viewthread.php?tid=681507
http://zhidao.baidu.com/question/67170892.html


经过此篇文章,我们又向持续集成迈了一步.下一步,我们就是在Cruisecontrol中把checkstyle的结果发布出去.
分享到:
评论

相关推荐

    Ant 用CheckStyle审查代码

    通过使用Ant和CheckStyle,开发团队能够有效地提高代码质量,减少代码审查的工作量,同时也能培养良好的编码习惯。这不仅可以提升软件的整体质量,也有助于团队间的协作和代码的长期维护。因此,掌握这种自动化代码...

    Ant工程checkstyle编写(代码检测)

    本篇将详细介绍如何在Ant工程中配置和使用Checkstyle进行代码检测。 首先,我们需要理解Ant的基本概念。Apache Ant是一个基于Java的任务驱动构建系统,它允许开发者通过XML配置文件定义任务来构建、测试和部署项目...

    在eclipse中使用checkStyle

    安装CheckStyle到Eclipse的第一步是将解压后的checkStyle库文件复制到Eclipse的插件目录下。通常,这个目录位于`eclipse\plugins`或`eclipse\drops`中,具体取决于你的Eclipse版本和操作系统。按照文档中的指示,...

    MyEclipse安装和使用checkstyle详解

    2. 安装Checkstyle到MyEclipse:将下载的Checkstyle jar文件复制到MyEclipse的plugins目录下,重启MyEclipse,系统会自动识别并加载该插件。 二、配置Checkstyle 1. 配置Checkstyle首选项:在MyEclipse中,选择...

    CheckStyle使用详解.doc

    CheckStyle是一款功能强大且操作简单的代码检查工具,它可以与Ant结合使用,并且是Open Source的,这意味着用户不需要担心收到律师函。CheckStyle的主要功能是检查Java代码的格式和风格,以确保代码的可读性和维护性...

    Checkstyle 使用手册 以及常用方法

    这个"Checkstyle 使用手册 以及常用方法"涵盖了Checkstyle的基本使用和一些常见功能的详细解释。 首先,了解如何配置和运行Checkstyle至关重要。Checkstyle可以通过命令行、IDE插件(如Eclipse、IntelliJ IDEA)...

    Checkstyle使用说明

    1. **配置 Checkstyle**: 首先,你需要在 Ant 脚本中定义 Checkstyle 相关的属性,包括配置文件路径(checkstyle.config),报告样式文件(checkstyle.report.style),结果 XML 文件(checkstyle.result)以及 ...

    checkstyle插件使用文档

    以下是关于如何在 Maven 项目中配置和使用 Checkstyle 插件的详细步骤及知识点解析: 1. **配置 Checkstyle 插件**: 在 Maven 项目的 `pom.xml` 文件的 `&lt;reporting&gt;` 部分,我们需要添加 Checkstyle 插件的相关...

    代码检查 CheckStyle-IDEA

    CheckStyle 是一个广泛使用的开源代码质量检查工具,它遵循一系列预定义的编码规范,帮助开发者确保代码的一致性和可维护性。在 Java 和 Android 开发中,保持良好的代码风格和规范至关重要,因为这有助于提高代码的...

    checkstyle中文帮助文档

    5. **在Ant中使用Checkstyle**:Ant是Java项目常用的构建工具,Checkstyle可以通过Ant任务进行集成。配置包括定义Checkstyle任务,指定配置文件,然后运行任务检查代码。 6. **在Eclipse中使用Checkstyle**:...

    Checkstyle的安装文件和使用说明

    Checkstyle是一款广泛使用的Java编程语言的静态代码分析工具,它帮助开发者遵循特定的编码规范和最佳实践,确保代码的一致性和可读性。本指南将详细介绍Checkstyle的安装过程、配置方法以及如何在项目中使用它。 ...

    Checkstyle压缩包和使用说明

    Checkstyle是一款广泛使用的Java编程语言的静态代码分析工具,它主要的作用是检查代码是否符合预设的编码规范和风格。这个“Checkstyle压缩包和使用说明”包含了Checkstyle的安装包以及详细的使用指南,帮助开发者...

    CheckStyle使用说明.pdf

    ### CheckStyle 使用说明详解 #### 一、引言 随着软件项目的规模不断扩大,代码的质量问题逐渐成为制约项目进度的关键因素之一。为了确保代码的一致性和可维护性,很多团队都会制定一套编码规范,并定期进行代码...

    IDEA CheckStyle离线安装包

    **IDEA CheckStyle离线安装包** ...通过以上步骤,你可以在IDEA中成功安装并使用CheckStyle离线插件,提升代码质量,减少因编码不规范导致的问题。这不仅有利于个人的编程习惯,也有利于团队间的协作和项目的维护。

    IDEA CheckStyle插件离线安装包 checkstyle-idea-4.10.0.zip

    **CheckStyle插件详解** CheckStyle是一款开源的代码质量检查工具,主要应用于Java语言...通过离线安装包`checkstyle-idea-4.10.0.zip`,我们可以方便地在IntelliJ IDEA中使用CheckStyle功能,享受它带来的诸多益处。

    checkstyle

    通过使用Checkstyle,团队可以确保代码的一致性,提高代码质量,减少潜在的bug,并提升代码的可读性和可维护性。 Checkstyle 可以与多种集成开发环境(IDE)无缝配合,包括Eclipse和MyEclipse。在Eclipse中,可以...

Global site tag (gtag.js) - Google Analytics