下面,我们开始来为我们的工程编写 Ant 脚本。
清单1设置一些属性,包括源文件,二进制文件,JUnit 报告,覆盖率报告等的路径
<!-设置Java类被注入字节码后存放的路径-->
<property name="bin.instrument.dir" location="../instrbin" />
<!-设置覆盖率元数据和报告的路径-->
<property name="coverage.dir" location="../coverage" />
<!--设置junit报告的路径 -->
<property name="junitReport.dir" location="../junitReport" />
<!-设置主题代码bin路径-->
<property name="bin.main.dir" location="../srcbin" />
<!-设置测试代码bin路径-->
<property name="bin.test.dir" location="../testbin" />
<!--设置主题代码源路径-->
<property name="src.main.dir" location="../../SampleProject/src" />
<!--设置测试代码源路径-->
<property name="src.test.dir" location="../../SampleProjectTest/test"
/>
<!-指示需要注入字节码的Java类的路径-->
<path id="classpath.main">
<pathelement location="${bin.main.dir}" />
</path>
<!-指示 emma.jar 和emma_ant.jar 的路径-->
<path id="emma.lib">
<pathelement location="${libs}/emma.jar" />
<pathelement location="${libs}/emma_ant.jar" />
</path>
<!-允许emma-->
<property name="emma.enabled" value="true" />
其中目录${ bin.instrument.dir }存放被注入字节码的类,"emma.lib" 指向 emma 资源所在的位置。
清单2为 ANT 定义 EMMA 任务
<!-为ANT添加EMMA任务-->
<taskdef resource="emma_ant.properties" classpathref="emma.lib" />
清单3编译源代码和测试代码
<target name="compile-src.main">
<mkdir dir="${bin.main.dir}" />
<javac destdir="${bin.main.dir}" debug="on">
<src path="${src.main.dir}" />
</javac>
<copy todir="${bin.main.dir}">
<fileset dir="${src.main.dir}">
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
<target name="compile-src.test">
<mkdir dir="${bin.test.dir}" />
<javac destdir="${bin.test.dir}" debug="on">
<src path="${src.test.dir}" />
<classpath location="${bin.main.dir}" />
</javac>
<copy todir="${bin.test.dir}">
<fileset dir="${src.test.dir}">
<exclude name="**/*.java" />
</fileset>
</copy>
</target>
编译分两阶段,先编译源代码,然后再编译测试用例代码。