Ant + PMD\Checkstyle使用文档

本文档介绍了Ant作为Java的build工具及其build.xml的使用,详细讲解了PMD这款代码检查工具以及Checkstyle如何辅助开发者遵循编码规范。通过Ant的javac任务进行Java程序的编译。
摘要由CSDN通过智能技术生成

1、名词解释

Ant

Ant是一种基于Java的build工具, 类似于C中的Msbuild与devenv, Ant被广为使用的是其build.xml功能,这个文件可以集成多种工具,并进行持续编译至打包完成,也可以理解为一个简单的持续集成环境

PMD

PMD是一款采用BSD协议发布的Java程序代码检查工具。该工具检查源文件的潜在问题,可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等。我们所使用的是 pmd-src-5.0.4 版本

 

CheckStyle

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

2、build.xml详解

利用Ant 的javac来编译java程序

<?xml version="1.0"?>
<!—设置变量 -->
<project name="wendy">
  <property name="classes" value="F:\data\build\classes"/>
  <property name="build" value="F:\data\build"/>
  <property name="lib" value="F:\data\WebRoot\WEB-INF/lib"/>
<!—删除build路径-->
  <target name="clean">
   <delete dir="build"/>
  </target>
<!-- 建立build/classes路径,并编译class文件到此路径下 -->
<target name="compile" depends="clean">
  <mkdir dir="${classes}"/>
  <javac srcdir="src\jit\diy\obj" destdir="${classes}"/>
</target>


利用Ant 生成jar文件

  <target name="jar" depends="run">
    <jar destfile="test.jar" basedir="${classes}">
     <manifest>
       <attribute name="Main-class" value="test"/>
     </manifest>
    </jar>
</target>

利用Ant的war任务打包J2EE Web项目

<target name="war" depends="compile">
   <war destfile="${build}/webproject.war" webxml="WebRoot/WEB-INF/web.xml">
<!—拷贝webroot下除了WEB-INF和META-INF的两个文件夹-->
    <fileset dir="WebRoot" includes="**/*.jsp"/>
<!—拷贝lib下的jar包-->
    <lib dir="${lib}"/>
<!—拷贝build\class下的class文件-->
    <classes dir="${classes}"/>
  </war>
</target>

3、集成PMD节点

<path id="pmd.path">
    <fileset dir="${lib.dir}/pmd-src-5.0.4">
      <include name="**/*.jar" />
    </fileset>
</path>
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" lasspathref="pmd.path"/>
<taskdefname="cpd"classname="net.sourceforge.pmd.cpd.CPDTask"classpathref="pmd.path"/>
  <target name="pmd">
   <pmd shortFilenames="true">
<!—设置检查规则文件-->
      <ruleset>java\basic.xml</ruleset>
<!—设置report生成路径-->
      <formatter type="html" toFile="${report.dir}/foo.html" toConsole="false"/>
      <fileset dir="${src.dir}">
<!—设置检查文件-->
       <include name="**/*.java"/>
      </fileset>
    </pmd>
</target>

<target name="cpd">
<!—设置重复代码循环次数及生成文件路径-->
    <cpd minimumTokenCount="100" outputFile="f:/report/cpd.txt">
      <fileset dir="${src.dir}">
        <include name="**/*.java"/>
      </fileset>
    </cpd>
  </target>

4、 集成CheckStyle节点
<target name="my_check" depends="init">
    <taskdefresource="checkstyletask.properties"classpath="${checkstyle.dir}\checkstyle-5.6-all.jar"/>
<!—设置检查规则文件-->
     <checkstyle config="${checkstyle.dir}\test_checkstyle.xml">
<!—设置被检查文件-->
     <fileset dir="F:\data\src" includes="**/*.java"/>
     <formatter type="plain" />
<!—设置检查结果输出-->
     <formatter type="xml" toFile="${result.dir}\checkstyle_report.xml" />
     </checkstyle>
 </target>
<target name="xml2html" depends="my_check">
<!—设置html检查结果输出-->
<xsltin="${result.dir}\checkstyle_report.xml"out="${result.html}\checkstyle.html"style="${checkstyle.dir}\contrib\checkstyle-frames-errors.xsl">
    </xslt>
  </target>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值