<?xml version="1.0" encoding="UTF-8"?>
<project name="AMRApp" default="build" basedir=".">
<property name="build_resource.dir" value="." />
<property name="work.space" value="./amr_build_workspace" />
<property name="svn-url-root" value="svn://10.10.124.90/SouceCode" />
<property name="svn-url-amr" value="${svn-url-root}/AMR" />
<property name="svnant.lib.dir" value="${build_resource.dir}/svnant" />
<property name="svn.username" value="amrbuild" />
<property name="svn.password" value="amr789" />
<property name="j2ee6.dir" value="${build_resource.dir}/J2EE6" />
<property name="j2ee5.dir" value="${build_resource.dir}/J2EE5" />
<property name="jboss6.client.dir" value="${build_resource.dir}/JBOSS6.1_client" />
<!-- compile -->
<macrodef name="compile" description="Compile Java Files">
<attribute name="configDir" />
<attribute name="deliveryDir" />
<sequential>
<!-- Start to checkout from svn -->
<svn username="${svn.username}" password="${svn.password}" javahl="false">
<checkout url="${svn-url-amr}/AMRI" destPath="${work.space}/AMRI" />
</svn>
<svn username="${svn.username}" password="${svn.password}" javahl="false">
<checkout url="${svn-url-amr}/AMRApp" destPath="${work.space}/AMRApp" />
</svn>
<svn username="${svn.username}" password="${svn.password}" javahl="false">
<checkout url="${svn-url-amr}/AMREar" destPath="${work.space}/AMREar" />
</svn>
<svn username="${svn.username}" password="${svn.password}" javahl="false">
<checkout url="${svn-url-amr}/AMRWeb" destPath="${work.space}/AMRWeb" />
</svn>
<svn username="${svn.username}" password="${svn.password}" javahl="false">
<checkout url="${svn-url-amr}/AMRScheduler" destPath="${work.space}/AMRScheduler" />
</svn>
<!--
<svn username="${svn.username}" password="${svn.password}" javahl="false">
<checkout url="${svn-url-root}/branches/AMR_ACE_Common/ACE" destPath="${work.space}/ACE" />
</svn>
-->
<!-- Start to build AMRI -->
<delete dir="${work.space}/AMRI/classes" />
<mkdir dir="${work.space}/AMRI/classes" />
<javac destdir="${work.space}/AMRI/classes" debug="true" deprecation="false" optimize="false" failοnerrοr="true" encoding="UTF-8">
<src path="${work.space}/AMRI/src" />
<src path="${work.space}/AMRI/src_utils" />
<classpath>
<fileset dir="${work.space}/AMREar/lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="${j2ee6.dir}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${jboss6.client.dir}">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
<delete dir="${work.space}/@{deliveryDir}/AMRI.jar" />
<jar destfile="${work.space}/@{deliveryDir}/AMRI.jar" basedir="${work.space}/AMRI/classes">
</jar>
<!-- Start to build AMRApp -->
<mkdir dir="${work.space}/@{deliveryDir}/107/amrConfig" />
<mkdir dir="${work.space}/@{deliveryDir}/108/amrConfig" />
<!-- copy env for 107 server-->
<copy todir="${work.space}/@{deliveryDir}/107/amrConfig" overwrite="true">
<fileset dir="${work.space}/AMRApp/@{configDir}">
<include name="**/*.xml" />
<include name="**/*.properties" />
<exclude name="**/for107/**" />
<exclude name="**/for108/**" />
</fileset>
<fileset dir="${work.space}/AMRApp/@{configDir}/for107">
<include name="**/*.xml" />
<include name="**/*.properties" />
</fileset>
</copy>
<!-- copy env for 108 server-->
<copy todir="${work.space}/@{deliveryDir}/108/amrConfig" overwrite="true">
<fileset dir="${work.space}/AMRApp/@{configDir}">
<include name="**/*.xml" />
<include name="**/*.properties" />
<exclude name="**/for107/**" />
<exclude name="**/for108/**" />
</fileset>
<fileset dir="${work.space}/AMRApp/@{configDir}/for108">
<include name="**/*.xml" />
<include name="**/*.properties" />
</fileset>
</copy>
<delete dir="${work.space}/AMRApp/classes" />
<mkdir dir="${work.space}/AMRApp/classes" />
<javac destdir="${work.space}/AMRApp/classes" debug="true" deprecation="false" optimize="false" failοnerrοr="true" encoding="UTF-8">
<src path="${work.space}/AMRApp/src" />
<src path="${work.space}/AMRApp/src_entity" />
<classpath>
<fileset dir="${work.space}/AMREar/lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="${work.space}/@{deliveryDir}">
<include name="AMRI.jar" />
</fileset>
<fileset dir="${j2ee6.dir}">
<include name="**/*.jar" />
</fileset>
<fileset dir="${jboss6.client.dir}">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
<copy todir="${work.space}/AMRApp/classes">
<fileset dir="${work.space}/AMRApp/@{configDir}">
<include name="**/*.xml" />
<include name="**/*.properties" />
<exclude name="**/for107/**" />
<exclude name="**/for108/**" />
</fileset>
</copy>
<copy todir="${work.space}/AMRApp/classes">
<fileset dir="${work.space}/AMRApp/src">
<include name="**/*.xml" />
<include name="**/*.properties" />
<include name="**/*.cer" />
<include name="**/*.jks" />
</fileset>
</copy>
<copy todir="${work.space}/AMRApp/classes">
<fileset dir="${work.space}/AMRApp/src_entity">
<include name="**/*.xml" />
<include name="**/*.properties" />
</fileset>
</copy>
<!-- overwrite env for 107 server -->
<copy todir="${work.space}/AMRApp/classes" overwrite="true">
<fileset dir="${work.space}/AMRApp/@{configDir}/for107">
<include name="**/*.xml" />
<include name="**/*.properties" />
</fileset>
</copy>
<delete dir="${work.space}/@{deliveryDir}/AMRApp.jar" />
<jar destfile="${work.space}/@{deliveryDir}/AMRApp.jar" basedir="${work.space}/AMRApp/classes">
</jar>
<!-- Start to build AMREar -->
<copy todir="${work.space}/AMREar/lib">
<fileset dir="${work.space}/@{deliveryDir}">
<include name="AMRI.jar" />
</fileset>
</copy>
<copy todir="${work.space}/AMREar">
<fileset dir="${work.space}/@{deliveryDir}">
<include name="AMRApp.jar" />
</fileset>
</copy>
<delete dir="${work.space}/@{deliveryDir}/107/AMREar.ear" />
<ear destfile="${work.space}/@{deliveryDir}/107/AMREar.ear" appxml="${work.space}/AMREar/META-INF/application.xml">
<fileset file="${work.space}/AMREar/lib">
<include name="lib/*.jar" />
</fileset>
<fileset dir="${work.space}/AMREar">
<include name="AMRApp.jar" />
</fileset>
</ear>
<!-- overwrite env for 108 server -->
<copy todir="${work.space}/AMRApp/classes" overwrite="true">
<fileset dir="${work.space}/AMRApp/@{configDir}/for108">
<include name="**/*.xml" />
<include name="**/*.properties" />
</fileset>
</copy>
<delete dir="${work.space}/@{deliveryDir}/AMRApp.jar" />
<jar destfile="${work.space}/@{deliveryDir}/AMRApp.jar" basedir="${work.space}/AMRApp/classes">
</jar>
<!-- Start to build AMREar -->
<copy todir="${work.space}/AMREar/lib">
<fileset dir="${work.space}/@{deliveryDir}">
<include name="AMRI.jar" />
</fileset>
</copy>
<copy todir="${work.space}/AMREar">
<fileset dir="${work.space}/@{deliveryDir}">
<include name="AMRApp.jar" />
</fileset>
</copy>
<delete dir="${work.space}/@{deliveryDir}/108/AMREar.ear" />
<ear destfile="${work.space}/@{deliveryDir}/108/AMREar.ear" appxml="${work.space}/AMREar/META-INF/application.xml">
<fileset file="${work.space}/AMREar/lib">
<include name="lib/*.jar" />
</fileset>
<fileset dir="${work.space}/AMREar">
<include name="AMRApp.jar" />
</fileset>
</ear>
<!-- Start to build AMRWeb -->
<copy todir="${work.space}/AMRWeb/WebRoot/WEB-INF/lib">
<fileset dir="${work.space}/@{deliveryDir}">
<include name="AMRI.jar" />
</fileset>
<fileset dir="${jboss6.client.dir}">
<include name="**/*.jar" />
<exclude name="jboss-jsp-api_2.2*.jar" />
<exclude name="jboss-el-api*.jar" />
</fileset>
</copy>
<delete dir="${work.space}/AMRWeb/WebRoot/WEB-INF/classes" />
<mkdir dir="${work.space}/AMRWeb/WebRoot/WEB-INF/classes" />
<javac destdir="${work.space}/AMRWeb/WebRoot/WEB-INF/classes" debug="true" deprecation="false" optimize="false" failοnerrοr="true" encoding="UTF-8">
<src path="${work.space}/AMRWeb/src" />
<src path="${work.space}/AMRWeb/ws_sso_client" />
<classpath>
<fileset dir="${work.space}/AMRWeb/WebRoot/WEB-INF/lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="${j2ee6.dir}">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
<copy todir="${work.space}/AMRWeb/WebRoot/WEB-INF/classes">
<fileset dir="${work.space}/AMRWeb/src">
<include name="**/*.xml" />
<include name="**/*.properties" />
<include name="**/*.wsdl" />
<include name="**/*.cer" />
</fileset>
<fileset dir="${work.space}/AMRWeb/ws_sso_client">
<include name="**/*.xml" />
<include name="**/*.properties" />
<include name="**/*.wsdl" />
<include name="**/*.xsd" />
</fileset>
<fileset dir="${work.space}/AMRWeb/@{configDir}">
<include name="**/*.xml" />
<include name="**/*.properties" />
<include name="**/*.wsdl" />
<include name="**/*.cer" />
</fileset>
</copy>
<delete dir="${work.space}/@{deliveryDir}/AMRWeb.war" />
<war warfile="${work.space}/@{deliveryDir}/AMRWeb.war" webxml="${work.space}/AMRWeb/WebRoot/WEB-INF/web.xml">
<fileset dir="${work.space}/AMRWeb/WebRoot">
</fileset>
</war>
<!-- Start to build AMRScheduler -->
<copy todir="${work.space}/AMRScheduler/WebRoot/WEB-INF/lib">
<fileset dir="${work.space}/@{deliveryDir}">
<include name="AMRI.jar" />
</fileset>
<fileset dir="${jboss6.client.dir}">
<include name="**/*.jar" />
<exclude name="jboss-jsp-api_2.2*.jar" />
<exclude name="jboss-el-api*.jar" />
<exclude name="hibernate*.jar"/>
<exclude name="jbossws*.jar"/>
<exclude name="wsdl4j.jar"/>
<exclude name="cxf-rt-frontend-jaxws.jar"/>
<exclude name="cxf-rt-ws*.jar"/>
<exclude name="jboss-jax*.jar"/>
<exclude name="jaxws*.jar"/>
<exclude name="jaxb*.jar" />
</fileset>
</copy>
<delete dir="${work.space}/AMRScheduler/WebRoot/WEB-INF/classes" />
<mkdir dir="${work.space}/AMRScheduler/WebRoot/WEB-INF/classes" />
<javac destdir="${work.space}/AMRScheduler/WebRoot/WEB-INF/classes" debug="true" deprecation="false" optimize="false" failοnerrοr="true" encoding="UTF-8">
<src path="${work.space}/AMRScheduler/src" />
<src path="${work.space}/AMRScheduler/src_ws"/>
<classpath>
<fileset dir="${work.space}/AMRScheduler/WebRoot/WEB-INF/lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="${j2ee6.dir}">
<include name="**/*.jar" />
</fileset>
</classpath>
</javac>
<copy todir="${work.space}/AMRScheduler/WebRoot/WEB-INF/classes">
<fileset dir="${work.space}/AMRScheduler/src">
<include name="**/*.xml" />
<include name="**/*.properties" />
<include name="**/*.wsdd" />
<include name="**/*.wsdl" />
<include name="**/*.vm" />
<include name="**/*.jks" />
<include name="**/*.cer" />
<include name="**/*.jasper" />
<include name="**/*.jrxml" />
<include name="**/*.ftl" />
</fileset>
<fileset dir="${work.space}/AMRScheduler/src_ws">
<include name="**/*.xml" />
<include name="**/*.properties" />
<include name="**/*.wsdd" />
<include name="**/*.wsdl" />
<include name="**/*.vm" />
<include name="**/*.jks" />
<include name="**/*.cer" />
<include name="**/*.jasper" />
<include name="**/*.jrxml" />
</fileset>
<fileset dir="${work.space}/AMRScheduler/@{configDir}">
<include name="**/*.xml" />
<include name="**/*.properties" />
<include name="**/*.wsdd" />
<include name="**/*.wsdl" />
<include name="**/*.vm" />
<include name="**/*.jks" />
<include name="**/*.cer" />
<include name="**/*.jasper" />
<include name="**/*.jrxml" />
</fileset>
</copy>
<delete dir="${work.space}/@{deliveryDir}/AMRScheduler.war" />
<war warfile="${work.space}/@{deliveryDir}/AMRScheduler.war" webxml="${work.space}/AMRScheduler/WebRoot/WEB-INF/web.xml">
<fileset dir="${work.space}/AMRScheduler/WebRoot">
</fileset>
</war>
<!-- clean workspace -->
<delete dir="${work.space}/AMRI" />
<delete dir="${work.space}/AMRApp" />
<delete dir="${work.space}/AMREar" />
<delete dir="${work.space}/AMRWeb" />
<delete dir="${work.space}/AMRScheduler" />
<delete dir="${work.space}/@{deliveryDir}/AMRI.jar" />
<delete dir="${work.space}/@{deliveryDir}/AMRApp.jar" />
</sequential>
</macrodef>
<target name="compile.dev" description="Compile Java Files">
<compile configDir="config_production" deliveryDir="deliverables_for_dev_env" />
</target>
<!-- svn -->
<path id="svnant.lib">
<fileset dir="${svnant.lib.dir}">
<include name="*.jar" />
</fileset>
</path>
<taskdef name="svn" classname="org.tigris.subversion.svnant.SvnTask" classpathref="svnant.lib" />
<target name="clean">
<delete dir="${work.space}" />
</target>
<target name="build" depends="clean,compile.dev">
</target>
</project>
这是一个ant例子。其中包括 svn 下载代码 / 打包 /复制 /删除 / 大家可以借鉴下