<?xml version="1.0" encoding="UTF-8"?>
<!-- ======================================================================
2008-8-4 下午05:39:58
test-hibernate3
description
user
====================================================================== -->
<project name="test-hibernate3" default="usage">
<description>
description
</description>
<property name="project.name" value="test-hibernate3" />
<property name="war.name" value="HBDemo" />
<property name="project.author" value="ShenLi" />
<property name="project.version" value="1.0" />
<!--
系统目录定义
-->
<property file="build.properties" />
<property name="release.dir" value="./release" />
<property name="web.dir" value="./src_latest/WebContent" />
<property name="src.dir" value="./src_latest/src/main/" />
<property name="resources.dir" value="./src_latest/src/resource/" />
<property name="lib.dir" value="${web.dir}/WEB-INF/lib" />
<property name="servlet.lib.dir" value="${catalina.dir}/lib" />
<property name="build.dir" value="${web.dir}/WEB-INF/classes" />
<property name="server.deploy" value="${catalina.dir}/webapps" />
<property name="test.dir" value="./test/" />
<property name="test.resources" value="${test.dir}/resources/" />
<property name="unit_test.src" value="${test.dir}/unit/" />
<property name="functional_test.src" value="${test.dir}/functional/" />
<property name="test.lib.dir" value="${test.dir}/lib" />
<property name="target.dir" value="./target" />
<property name="test.build" value="${target.dir}/test/classes" />
<property name="functional_test.build" value="${target.dir}/test/fun_classes" />
<property name="test.data" value="${target.dir}/test/unit_data" />
<property name="functional_test.data" value="${target.dir}/test/functional_data" />
<property name="test.report" value="${target.dir}/test/unit_reports" />
<property name="functional_test.report" value="${target.dir}/test/functional_reports" />
<property name="junit.lib.dir" value="D:\\eclipse\\plugins\\org.junit4_4.3.1" />
<path id="svnant.classpath">
<fileset dir="${svnant.lib.dir}">
<include name="**/*.jar"/>
</fileset>
</path>
<!-- load the svn task -->
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svnant.classpath" />
<target name="clean">
<delete dir="src_latest"/>
<delete dir="src_${svnant.version}"/>
<delete dir="${build.dir}" />
<delete dir="${release.dir}" />
<delete dir="${target.dir}" />
</target>
<target name="checkoutLatest">
<svn username="${svnant.repository.user}" password="${svnant.repository.passwd}">
<checkout url="${svnant.latest.url}" revision="HEAD" destPath="src_latest" />
</svn>
</target>
<tstamp>
<format property="datestamp" pattern="yyyy-MM-dd" />
</tstamp>
<!-- 定义Class Path -->
<path id="compile.classpath">
<pathelement path="${jsdk_jar}" />
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${servlet.lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<path id="test.classpath">
<path refid="compile.classpath" />
<path location="${build.dir}" />
<fileset dir="${junit.lib.dir}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${test.lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- 编译选项 -->
<property name="compiler.args" value="-encoding UTF-8" />
<patternset id="compiler.resources">
<include name="**/?*.properties" />
<include name="**/?*.script" />
<include name="**/?*.groovy" />
<include name="**/?*.drl" />
<include name="**/?*.ftl" />
<include name="**/?*.dsl" />
<include name="**/?*.xml" />
<include name="**/?*.html" />
<include name="**/?*.dtd" />
<include name="**/?*.tld" />
<include name="**/?*.gif" />
<include name="**/?*.png" />
<include name="**/?*.jpeg" />
<include name="**/?*.jpg" />
<include name="**/?*.xsd" />
<include name="**/?*.schemas" />
</patternset>
<!-- 初始化目录 -->
<target name="init" depends="checkoutLatest">
<mkdir dir="${build.dir}" />
<mkdir dir="${release.dir}" />
<!--<mkdir dir="${target.dir}" />
<mkdir dir="${test.build}" />
<mkdir dir="${functional_test.build}" />
<mkdir dir="${test.data}" />
<mkdir dir="${functional_test.data}" />
<mkdir dir="${test.report}" />
<mkdir dir="${functional_test.report}" />-->
</target>
<!--
编译Java文件并复制资源文件
-->
<target name="compile.java" depends="init" description="编译Java文件并复制资源文件">
<!--编译i-TEST Manager Java 文件-->
<javac destdir="${build.dir}" fork="true" debug="true">
<compilerarg line="${compiler.args}" />
<classpath refid="compile.classpath" />
<src path="${src.dir}" />
</javac>
<!--复制i-TEST Manager的资源文件到classes-->
<copy todir="${build.dir}">
<fileset dir="${src.dir}">
<patternset refid="compiler.resources" />
</fileset>
<fileset dir="${resources.dir}">
<patternset refid="compiler.resources" />
</fileset>
</copy>
</target>
<!--
生成war文件
-->
<target name="war" depends="compile.java" description="生成war文件">
<property name="release.warfile" value="${release.dir}/${war.name}.war" />
<!--复制到一个新的文件夹创建War-->
<property name="temp.dir" value="${release.dir}/deploy" />
<delete file="${release.warfile}" />
<mkdir dir="${temp.dir}" />
<copy todir="${temp.dir}">
<fileset dir="${web.dir}" />
</copy>
<delete dir="${temp.dir}/WEB-INF/classes" />
<mkdir dir="${temp.dir}/WEB-INF/classes" />
<copy todir="${temp.dir}/WEB-INF/classes">
<fileset dir="${web.dir}/WEB-INF/classes" />
</copy>
<war destfile="${release.warfile}" webxml="${temp.dir}/WEB-INF/web.xml" basedir="${temp.dir}" excludes="**/web.xml">
<manifest>
<attribute name="Author" value="${project.author}" />
<section name="Shared">
<attribute name="Vendor" value="${project.author}" />
<attribute name="Version" value="${project.version}" />
<attribute name="Date" value="${datestamp}" />
</section>
<section name="Copyright">
<attribute name="Copy" value="(C) ${project.author} 2007" />
</section>
</manifest>
</war>
<delete dir="${temp.dir}" />
</target>
<!--
部署项目 到servers中的Tomcat
-->
<target name="deploy" depends="fun.test.deploy" description="Deploy Project to serverr">
<antcall target="tomcat.start" />
<echo message="请访问http://${tomcat.server}:${tomcat.port}/${war.name}" />
</target>
<target name="fun.test.deploy" depends="war" description="功能测试发布,不启动Tomcat">
<antcall target="tomcat.stop" />
<delete dir="${server.deploy}/${war.name}" />
<delete file="${server.deploy}/${war.name}.war" />
<copy todir="${server.deploy}" file="${release.dir}/${war.name}.war" />
</target>
<!--
显示可选任务,并接受用户的选择
-->
<target name="usage">
<echo message="${project.name} ${project.version}" />
<echo message="------------------------------------------------------" />
<echo message="" />
<echo message="可选Target:" />
<echo message="" />
<echo message="deploy --> Deploy Project to server" />
<echo message="compile --> 编译Java文件并复制资源文件" />
<echo message="war --> 生成war文件" />
<echo message="clean --> 清除环境" />
<echo message="" />
<input message="请选择一个Target" validargs="deploy,compile,war,clean" addproperty="ant.task" />
<antcall target="${ant.task}" />
</target>
</project>
对应的properties文件如下
JAVA_HOME=C:/Program Files/Java/jdk1.6.0
catalina.dir=C:/Program Files/Apache Software Foundation/Tomcat 6.0
tomcat.server=localhost
tomcat.port=8080
svnant.version=1.1.0-RC2
# -----------------------------------------------------------------------------
# all jar needed
# -----------------------------------------------------------------------------
svnant.lib.dir=D:/apache-ant-1.7.0/svnant-1.1.0-RC2/lib
svnant.latest.url=http://192.168.0.17:8060/svn/demo_projects/trunk/HibernateDemo
svnant.this.url=http://subclipse.tigris.org/svn/subclipse/tags/svnant/${svnant.version}/
svnant.repository.user=shenli
svnant.repository.passwd=garyli