Ant + PMD\Checkstyle使用文档

来源:互联网 发布:乐购数码淘宝是正品吗 编辑:程序博客网 时间:2024/05/18 14:11

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>


原创粉丝点击