Jenkins+PMD构建自动化静态代码检测

发表于:2013-7-29 11:00

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:hunterno4    来源:51Testing软件测试网采编

  前言:软件缺陷是不可避免的,要尽量减少错误并提高软件质量,主要有两在类技术,即缺陷预防和缺陷检测

  缺陷预防包括编写更好的设计规范、实施代码审核制度、运行代码静态分析工具、运行单元测试

  PMD是一种开源分析Java代码的工具,通过静态分析获知代码错误,该工具可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等等

  因此Jenkins+PMD构建自动化静态代码检测是很有必要的

  PMD下载地址http://sourceforge.net/projects/pmd/

  下载后解压即可

  PMD主要可以通过ant脚本来执行,编写ant的build文件,这里新建的为如buildPMD.xml

<?xml version="1.0" encoding="UTF-8"?>

<project name="pmd" default="pmd" basedir=".">
 
 <property environment="env">
 <property name="ExampleProject.location" value="../ExampleProject">
 <!-- 定义pmd的classpath,均为下载的pmd包解压后lib目录下的jar包-->
<path id="pmd.classpath">
  <pathelement location="${basedir}/lib/asm-3.2.jar">
  <pathelement location="${basedir}/lib/jaxen-1.1.1.jar">
  <pathelement location="${basedir}/lib/junit-4.4.jar">
  <pathelement location="${basedir}/lib/pmd-5.0.4.jar">

  <!--
  <fileset dir="${basedir}/lib/">
      <include name="**/*.jar">
 
  -->
</include></pathelement></pathelement></pathelement></pathelement></path>
<target depends="pmd_html" name="pmd">
  <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="pmd.classpath">
   <!-- 定义代码检测规则,这里直接列出规则imports.xml和java-unusedcode规则,本例注释了,使用下面一种在另一文件中定义规则集-->
   <!--
   <pmd rulesetfiles="rulesets/java/imports.xml,java-unusedcode">
   -->
    <!-- 定义PMD检测规则所在的文件,规则集在pmdrule.xml文件中定义-->
   <pmd rulesetfiles="${basedir}/pmdrule.xml" encoding="UTF-8">
    <!-- 输出XML格式的报告-->
    <formatter type="html" tofile="pmd_report.html" toconsole="true">
    <!-- 静态代码检测ExampleProject工程下src目录下的所有java文件-->
    <fileset dir="${ExampleProject.location}/src">
        <include name="**/*.java">
    </include></fileset>
  </formatter></pmd>
</taskdef></target>

<target name="pmd_html">
  <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="pmd.classpath">
  <!--
   <pmd rulesetfiles="rulesets/java/imports.xml,java-unusedcode">
  -->
   <pmd rulesetfiles="${basedir}/pmdrule.xml" encoding="UTF-8">
  <!-- 输出HTML格式的报告-->
    <formatter type="xml" tofile="pmd_report.html" toconsole="true">
    <fileset dir="${ExampleProject.location}/src">
        <include name="**/*.java">
    </include></fileset>
  </formatter></pmd>
</taskdef></target>

</project>

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号