<?xml version="1.0" encoding="UTF-8"?>
<project default="create" basedir=".">
<!-- 常用变量 -->
<property name="project.name" value="junitant" />
<property name="project.src" value="${basedir}/src" />
<!--测试代码的位置 -->
<property name="project.testsrc" value="${basedir}/testcase" />
<property name="compile.version" value="1.6" />
<property name="project-version" value="1.0" />
<!--junit 测试报表输出 -->
<property name="report.html" value="${basedir}/build/junit/html" />
<property name="report.xml" value="${basedir}/build/junit/xml" />
<!-- 删除上次编译的文件-->
<target name="clean" description="delete build files">
<delete dir="${basedir}/build" />
</target>
<!-- 创建目录-->
<target name="init" description="create files" depends="clean">
<mkdir dir="${basedir}/build/class" />
<mkdir dir="${basedir}/build/testclass" />
</target>
<path id="classpath">
<fileset dir="lib">
<include name="*.jar" />
</fileset>
</path>
<!--编译java源文件-->
<target name="compile" description="complie java files" depends="init">
<javac srcdir="${project.src}" destdir="${basedir}/build/class" source="${compile.version}" classpathref="classpath" encoding="UTF-8" />
<!-- 编译test class,需要用到上面的class -->
<javac srcdir="${project.testsrc}" destdir="${basedir}/build/testclass" source="${compile.version}" encoding="UTF-8">
<classpath>
<pathelement path="${basedir}/build/class" />
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
</target>
<!--junit-->
<target name="junit" depends="compile">
<mkdir dir="${report.html}" />
<mkdir dir="${report.xml}" />
<junit printsummary="yes" haltonfailure="no">
<!-- jar和class -->
<classpath>
<pathelement path="${basedir}/build/class" />
<pathelement path="${basedir}/build/testclass" />
<fileset dir="lib">
<include name="**/*.jar" />
</fileset>
</classpath>
<formatter type="xml" />
<batchtest todir="${report.xml}">
<fileset dir="${basedir}/build/testclass">
<include name="**/*Test.class" />
</fileset>
</batchtest>
</junit>
<junitreport todir="${report.html}">
<fileset dir="${report.xml}">
<include name="*.xml" />
</fileset>
<report format="frames" todir="${report.html}" />
</junitreport>
</target>
<target name="copy-sources" depends="junit">
<copydir dest="build/${project.name}/lib" src="lib" />
<!--使用服务器上的配置
forceoverwrite="true": 会覆盖文件
<copydir dest="build/${project.name}/conf" src="sconf" forceoverwrite="true"/>
-->
</target>
<!--创建jar -->
<target name="create" depends="copy-sources">
<!-- 通过文件名称组装jar的名称字符串-->
<pathconvert property="mf.classpath" pathsep=" ./lib/">
<path refid="classpath" />
<flattenmapper />
</pathconvert>
<copydir dest="build/${project.name}/" src="build/${project.name}" />
<jar basedir="build/class" destfile="build/${project.name}/${project.name}_${project-version}.jar">
</jar>
</target>
</project>