Ant + PMD\Checkstyle使用

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程

<?xmlversion="1.0"?>

<!—设置变量-->

<projectname="wendy">

            <propertyname="classes"value="F:\data\build\classes"/>

            <propertyname="build"value="F:\data\build"/>

            <propertyname="lib"value="F:\data\WebRoot\WEB-INF/lib"/>

        <!—删除build路径-->

            <targetname="clean">

                <deletedir="build"/>

            </target>

        <!-- 建立build/classes路径,并编译class文件到此路径下-->

<targetname="compile"depends="clean">

                <mkdirdir="${classes}"/>

                 <javacsrcdir="src\jit\diy\obj"destdir="${classes}"/>

            </target>

使用Ant的jar任务生成jar文件

     <targetname="jar"depends="run">

                 <jardestfile="test.jar"basedir="${classes}">

                 <manifest>

                 <attributename="Main-class"value="test"/>

                 </manifest>

                 </jar>

</target>

 

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

        <targetname="war"depends="compile">

             <wardestfile="${build}/webproject.war"webxml="WebRoot/WEB-INF/web.xml">

             <!—拷贝webroot下除了WEB-INFMETA-INF的两个文件夹-->

             <filesetdir="WebRoot"includes="**/*.jsp"/>

             <!—拷贝lib下的jar-->

             <libdir="${lib}"/>

             <!—拷贝build\class下的class文件-->

             <classesdir="${classes}"/>

             </war>

        </target>

 

 3、 集成PMD节点

<pathid="pmd.path">

         <filesetdir="${lib.dir}/pmd-src-5.0.4">

          <includename="**/*.jar" />

         </fileset>

    </path>

<taskdefname="pmd"classname="net.sourceforge.pmd.ant.PMDTask"lasspathref="pmd.path"/>

  <taskdefname="cpd"classname="net.sourceforge.pmd.cpd.CPDTask"classpathref="pmd.path"/>

 

<targetname="pmd">

<pmdshortFilenames="true">

<!—设置检查规则文件-->

      <ruleset>java\basic.xml</ruleset>

<!—设置report生成路径-->

<formattertype="html"toFile="${report.dir}/foo.html"toConsole="false"/>

<filesetdir="${src.dir}">

<!—设置检查文件-->

         <includename="**/*.java"/>

         </fileset>

     </pmd>

</target>

 

<targetname="cpd">

<!—设置重复代码循环次数及生成文件路径-->

    <cpdminimumTokenCount="100"outputFile="f:/report/cpd.txt">

      <filesetdir="${src.dir}">

        <includename="**/*.java"/>

      </fileset>

    </cpd>

  </target>

 

4、集成CheckStyle

 

<targetname="my_check"depends="init">

    <taskdefresource="checkstyletask.properties"classpath="${checkstyle.dir}\checkstyle-5.6-all.jar"/>

<!—设置检查规则文件-->

     <checkstyleconfig="${checkstyle.dir}\test_checkstyle.xml">

<!—设置被检查文件-->

     <filesetdir="F:\data\src"includes="**/*.java"/>

     <formattertype="plain" />

<!—设置检查结果输出-->

     <formattertype="xml"toFile="${result.dir}\checkstyle_report.xml" />

     </checkstyle>

 </target>

<targetname="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>

 

5、检查方法

如果你已经有了ant或类似CruiseControl.Net等脚本形式的持续构建环境,只需要添加这些节点正常运行脚本就可以了

 

 如果你是配置管理人员,需要对开发代码进行审核汇报,那么你可以写一个bat,包含以下内容,将bat放到ant的安装目录下,定期执行即可以pmd为例,checkstyle同理:

ant –f f:\build_pmd.xml pmdcpd

 

如果你是研发人员,则不需要这样麻烦,直接找个可以集成到IDE里的插件就可以了,在编译的时候执行代码检查,这样比较便于研发人员修改,网上就可以搜的到,如果有找不到的可以联系我单独发给你J

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值