2014年3月15日土曜日

Copy Paste Detector(CPD)の解析結果をHTMLにする。

CPDで解析した結果はそのままでは見難いので、
antのタスクで解析からHTML出力まで行います。
HTMLにする際、XSLTテンプレートがPMDに含まれているので、
それを利用します。
ディレクトリ構成は以下の通りです。

/
  /pmd-bin-5.1.0/
  /commons-net-3.3-src/
  /apache-ant-1.8.4/
  build.xml
  cpdExec.bat

以下は、antのbuild.xmlファイルです。

<?xml version="1.0" encoding="UTF-8"?>
<project name="CPD" default="analysis" basedir=".">
  <path id="cpd.lib">
    <fileset dir="./pmd-bin-5.1.0/lib">
      <include name="*.jar"/>
    </fileset>
  </path>
  <taskdef name="cpd" classpathref="cpd.lib" classname="net.sourceforge.pmd.cpd.CPDTask"/>
  <target name="analysis">
    <antcall target="cpd" />
    <antcall target="xslt" />
  </target>
  <target name="cpd">
    <cpd encoding="UTF-8" minimumTokenCount="100" format="xml" language="java" outputFile="cpd.xml">
         <fileset dir="./commons-net-3.3-src/src/main/java">
             <include name="**/*.java"/>
         </fileset>
     </cpd>
  </target>
  <target name="xslt">
    <xslt in="cpd.xml" style="./pmd-bin-5.1.0/etc/xslt/cpdhtml.xslt" out="cpd.html" />
  </target>
</project>

batファイルは、以下のように記述します。

setlocal
set JAVA_HOME=%ProgramFiles%\Java\jdk1.7.0_51
set ANT_HOME=./apache-ant-1.8.4
"%ANT_HOME%\bin\ant.bat"
pause

HTMLは以下のような感じになります。

Copy Paste Detector(CPD)

0 件のコメント:

コメントを投稿