2016-11-23 44 views
0
<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<project basedir="." default="info" name="MyProject"> 
    <property name="src.dir"  value="src"/> 
    <property name="build.dir" value="build"/> 
    <property name="classes.dir" value="${build.dir}/classes"/> 
    <property name="jar.dir"  value="${build.dir}/jar"/> 
    <property name="lib.dir"  value="lib"/> 
    <property name="jar.name" value="${ant.project.name}"/> 

    <path id="classpath"> 
     <fileset dir="${lib.dir}" includes="**/*.jar"/> 
    </path> 

    <target name="clean"> 
     <delete dir="${build.dir}"/> 
    </target> 

    <target name="compile" depends="clean"> 
     <mkdir dir="${classes.dir}"/> 
     <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath" debug="true" nowarn="true" debuglevel="lines,vars,source"/> 
    </target> 

    <target name="jar" depends="compile"> 
     <mkdir dir="${jar.dir}"/> 
     <jar destfile="${jar.dir}/${jar.name}.jar" basedir="${classes.dir}"> 
      <exclude name="**/Main.class" /> 
      <fileset dir="${src.dir}" includes="**/*.java"> 
       <exclude name="**/Main.java" /> 
      </fileset> 
      <zipgroupfileset dir="${lib.dir}" includes="*.jar"> 
       <exclude name="**/Utils.jar" /> 
      </zipgroupfileset> 
     </jar> 
    </target> 


    <target name="build" depends="jar"/> 

    <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" /> 
    <target name="pmd"> 
    <pmd shortFilenames="true" failuresPropertyName="failures.count" rulesetfiles="\path\pmd\ruleSet.xml"> 
     <formatter type="html" toFile="pmd_report.html" toConsole="true"/> 
     <fileset dir="src"> 
      <include name="**/*.java"/> 
     </fileset> 
    </pmd> 
    </target> 

    <target name="info">  
     <echo message="Available Targets:"/> 
     <echo message="  clean"/> 
     <echo message="  compile"/> 
     <echo message="  jar"/> 
     <echo message="  build"/> 
     <echo message="  pmd"/> 
    </target> 
</project> 

這個劇本給了我這個「的taskdef類net.sourceforge.pmd.ant.PMDTask無法找到使用類加載器AntClassLoader []「PMD Ant腳本給出的taskdef類net.sourceforge.pmd.ant.PMDTask不能使用ClassLoader找到AntClassLoader []

我在項目的lib文件夾中添加了PMD庫jar文件,其中其他庫作爲jar文件存在。

但是,如果我改變添加路徑引用到庫不作爲jarfile,它工作得很好。

<path id="pmd.classpath"> 
<fileset dir="C:\Users\PMD\pmd-bin-5.5.2"> 
<include name="**/*.jar"/> 
</fileset> 
    </path> 

我可以知道什麼是問題?我對ANT和PMD相當陌生,任何幫助將不勝感激。

感謝

回答

0

首先要檢查的是文件pmd-core-*.jar的lib目錄

其次添加在taskdef任務的路徑參考:

<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="classpath"/> 
相關問題