我的项目是这样子的,有一个公共的类库,一个开发的项目,从SVN上更新下来发布。
<?xml version="1.0" encoding="UTF-8"?><!-- author:qiaohq --><!-- name属性 用于指定project元素的名称。 default属性 用于指定project默认执行时所执行的target的名称。 basedir属性 用于指定基路径的位置。该属性没有指定时,使用Ant的构件文件的附目录作为基准目录。 --><project name="eisproject" default="compile" basedir="d:/tools/ant"> <!-- 我存放的项目地址 --> <property name="project" value="d:/work/test/project"></property> <!-- 存放公共类库项目 --><property name="common" value="d:/work/test/common/src"></property> <!-- 存放lib包的地方--><property name="lib" value="D:/work/localwork/project/webroot/WEB-INF/lib"></property> <property name="src" value="${project}/src"></property> <property name="build" value="${project}/webroot"></property> <property name="classpath" value="${project}/webroot/WEB-INF"></property> <property environment="myenv"></property> <!-- target元素 它为Ant的基本执行单元,它可以包含一个或多个具体的任务。 多个target可以存在相互依赖关系。它有如下属性: 1)name属性 指定target元素的名称,这个属性在一个project元素中是唯一的。 我们可以通过指定target元素的名称来指定某个target。 2)depends属性 用于描述target之间的依赖关系,若与多个target存在依赖关系时,需要以“,”间隔。 Ant会依照depends属性中target出现的顺序依次执行每个target。被依赖的target会先执行。 3)if属性 用于验证指定的属性是否存在,若不存在,所在target将不会被执行。 4)unless属性 该属性的功能与if属性的功能正好相反,它也用于验证指定的属性是否存在, 若不存在,所在target将会被执行。 5)description属性 该属性是关于target功能的简短描述和说明。 --> <!-- 初始化新建 --> <target name="init"> <mkdir dir="${build}/WEB-INF/classes"/> </target> <!-- ========================= --> <!-- target: build --> <!-- ========================= --> <target name="clean" depends="init" description=""> <delete dir="${classpath}/classes/com"></delete> </target> <target name="copy" description="烤贝公共类"> <copy todir="${src}/com"> <fileset dir="${common}"> </fileset> </copy> </target> <target name="compile" depends="clean,init,checkout,copy" description="--> compile and jar this component"> <javac srcdir="${src}" destdir="${classpath}/classes" debug="on"> <classpath refid="master-classpath"/> <compilerarg value="-Xlint:unchecked -Xlint:deprecation" /> </javac> <copy todir="${classpath}/classes"> <fileset dir="${src}"> <exclude name="**/*.java"/> </fileset> </copy> </target> <path id="master-classpath" > <fileset dir="${lib}"> <include name="*.jar" /> </fileset> <fileset dir="${myenv.CATALINA_HOME}/lib"> <include name="*.jar"/> </fileset> </path> <path id="svnant.dir"> <fileset dir="D:/tools/cruisecontrol-bin-2.8.2/svnant-1.2.1/lib"> <include name="*.jar" /> </fileset> </path> <taskdef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="svnant.dir" /> <!-- 导出svn --> <target name="checkout"> <svn username="test" password="steven" javahl="true"> <checkout url="https://192.168.249.82/svn/Repository/Project-SIPG ENG-DEPT/src" revision="HEAD" destPath="${src}" /> <checkout url="https://192.168.249.82/svn/Repository/Project-SIPG ENG-DEPT/webroot" revision="HEAD" destPath="${build}" /> <checkout url="https://192.168.249.82/svn/Repository/Project-COM HB Library/src/com" revision="HEAD" destPath="${common}" /> </svn> </target> <!-- 发布 --> <target name="buildfile" depends="compile" description="--> compile and jar this component"> <copy todir="${myenv.CATALINA_HOME}/webapps/project"> <fileset dir="${build}"> </fileset> </copy> <copy todir="${myenv.CATALINA_HOME}/webapps/project/WEB-INF/lib"> <fileset dir="${lib}"> </fileset> </copy> </target> <target name="build" depends="compile,init" description="--> compile and jar this component"> <war destfile="${myenv.CATALINA_HOME}/webapps/eis.war" webxml="${classpath}/web.xml"> <fileset dir="${build}"> </fileset> </war> </target> <target name="tomcat-startup" description="tomcat starting....."> <exec executable="${myenv.CATALINA_HOME}/bin/startup.bat" spawn="true" vmlauncher="false"> <env key="CATALINA_HOME" value="${myenv.CATALINA_HOME}" /> <arg line="/c start ${myenv.CATALINA_HOME}/bin/startup.bat" /> </exec> </target> <target name="tomcat-startdown"> <java jar="${myenv.CATALINA_HOME}/bin/bootstrap.jar" fork="true"> <jvmarg value="-Dcatalina.home=${myenv.CATALINA_HOME}"/> <arg line="stop"/> </java> <waitfor maxwait="5" maxwaitunit="second"> <available file="errors.log"/> </waitfor> </target> <target name="tomcat-restart" > <antcall target="tomcat-startdown"></antcall> <antcall target="tomcat-startup"></antcall> </target> </project>