AntでCoberturaを使用する際のbuild.xmlの設定

Ant（build.xml）からCoberturaを使用してカバレッジを取得する方法です。

以下のサイトも合わせて参考にして頂ければと思います。
[JenkinsでCoberturaを使用してカバレッジを取得](https://melodybreeze86.wordpress.com/2015/09/27/jenkins%E3%81%A7cobertura%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%82%AB%E3%83%90%E3%83%AC%E3%83%83%E3%82%B8%E3%82%92%E5%8F%96%E5%BE%97-2/)
※Coberturaモジュール（Cobertura-x.x.x.1-bin.tar.zip）のダウンロードや
　Jenkinsのジョブ設定について記載しています。

build.xmlの設定内容は、以下となります。
（以下、試したバージョン情報）
`apache-ant：1.9.4
coberturaモジュール：2.0.3`


```lang:build.xml
<project basedir="." default="build" name="[任意のディレクトリ]">

<property name="build.dir" value="${basedir}/build/>

<!-- コンパイル済classファイルにログ出力コードを埋め込んだファイルの出力先 -->
<property name="build.instrumented.dir" value="${build.dir}/classes"/>

<!-- カバレッジレポートの出力先 -->
<property name="build.coverage.dir" value="${build.dir}/cobertura/coverage"/>

<!-- JUnitレポートの出力先 -->
<property name="junit.ouput.dir" value="./build/junit/coverage"/>

<!-- ビルドに必要なパスがあれば設定 -->
<path id="sample.classpath">
    <pathelement location="xxx/lib" />
</path>

<!-- cobertura-x.x.x.1-bin.tar.zipを解凍したディレクトリ -->
<!-- ${basedir}直下のcobertura-libに配置した場合 -->
<property name="cobertura.dir" value="${basedir}/cobertura-lib"/>

<!-- Cobertura.jarのパス設定 -->
<path id="cobertura.classpath">
    <fileset dir="${cobertura.dir}">
        <include name="cobertura.jar" />
        <include name="lib/**/*.jar" />
    </fileset>
</path>

<!-- mainタスク実行（build.xmlから指定するタスク） -->
<!-- build-project        ： Javaコンパイル -->
<!-- cobertura_instrument ： classファイルのリコンパイル（Coberturaログ埋め込み）-->
<!-- JUnitTest            ： JUnitテスト実行 -->
<!-- coverage_report      ： Coberturaレポート出力 -->
<target name="main" depends="build-project,cobertura_instrument,JUnitTest,coverage_report" />

<!-- Cobertura：タスク宣言 -->
<taskdef classpathref="cobertura.classpath" resource="tasks.properties" />

<!-- cobertura.serの削除（serファイルのお掃除） -->
<target name="clean">
    <delete dir="target/classes" />
    <delete dir="target/test-classes />
    <delete file="cobertura.ser" />
</target>

<!-- Javaコンパイル (JDK1.7) -->
<target depends="clean" name="build-project">
    <javac debug="true" encoding="utf-8" destdir="target/classes" source="1.7" target="1.7" fork="yes">
        <src path=[Javaファイル格納パス] />
        <classpath refid="sample.classpath" />
    </javac>
</target>

<!-- Cobertura：classファイルのリコンパイル -->
<!-- classファイルの出力先がtarget/classesの場合 -->
<target name="cobertura_instrument">
    <cobertura-instrument todir="${build.instrumented.dir}">
        <fileset dir="target/classes>
            <include name="**/*.class" />
        </fileset>
    </cobertura-instrument>
</target>

<!-- JUnit -->
<target name="JUnitTest">
    <mk dir="${junit.output.dir}" />
    <junit fork="yes">
        <sysproperty key="net.sourceforge.cobertura.datafile" file="${basedir}/cobertura.ser" />
        <formatter type="xml" />

        <!-- coberturaのclassパスを先頭に記述 -->
        <classpath refid="cobertura.classpath" />
        <classpath location="${build.instrumented.dir}" />

        <batchtest todir="${junit.output.dir}">
            <fileset dir="target/test-classes" />
        </batchtest>
    </junit>

    <!-- JUnit：レポート出力 -->
    <junitrepot>
        <fileset dir="${junit.output.dir}">
            <include name="TEST-*.xml" />
        </fileset>
        <repot format="noframes" todir="${junit.output.dir}" />
    </junitreport>
</target>

<!-- Cobertura：レポート出力 -->
<target name="coverage_repot>
    <cobertura-report srcdir="[Javaファイル格納パス]" destdir="${build.coverage.dir}" encoding="shift_jis" />
    <cobuertura-report srcdir="[Javaファイル格納パス]" destdir="${build.coverage.dir}" format="xml" encoding="shift_jis" />
</target>
```


build.xmlの設定は、以下のサイトを参考にさせて頂きました。
[Cobertura、Ant、Jenkinsでコードカバレッジを取得する方法](http://d.hatena.ne.jp/yamap_55/20130409/1365518199)