2016-11-23 3 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が見つかりませんPMDのANTスクリプトがnet.sourceforge.pmd.ant.PMDTaskはクラスローダを使用して見つけることができないのtaskdefクラスを提供しますAntClassLoader []

他のライブラリがjarファイルとして存在するプロジェクトのlibフォルダにPMDライブラリjarファイルを追加しました。

しかし、私はjarfileとしてではなく、ライブラリへのパスrefの追加を変更してもうまくいきます。

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

問題が分かっていますか?私はANTとPMDにかなり新しいです、どんな助けも高く評価されます。チェックする

おかげ

答えて

0

まず最初は、あなたののlibディレクトリ内のファイルpmd-core-*.jarのですか?

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

は、第二のtaskdefタスク内のパスへの参照を追加します

関連する問題