<project name="HzGasManager" basedir="." default="main">
<!--设置日期格式-->
<tstamp>
<format property="TODAY_UK" pattern="dd-MM-yyyy" locale="en"/>
</tstamp>
<tstamp>
<format property="TODAY_CN" pattern="MM-dd-yyyy" locale="zh"/>
</tstamp>
<tstamp>
<format property="touch.time" pattern="MM-dd-yyyy hh:mm aa" offset="-5" unit="hour"/>
</tstamp>
<tstamp>
<format property="datestamp" pattern="yyyy-MM-dd' 'HH:mm:ss"/>
</tstamp>
<target name="setting" description="设置ant的日志配置">
<property environment="env" />
<echo message="[${datestamp}] jdk version ${ant.java.version}"/>
<!--日志文件-->
<property name="logfile" value="${basedir}/logs/${TODAY_CN}.log"/>
<!--要部署的容器Home目录-->
<property name="tomcat.home" value="D:\apache-tomcat-6.0.37"/>
</target>
<target name="init" depends="setting" description="设置初始化打 war 包需要的路径变量">
<property name="name" value="${ant.project.name}"/>
<property name="src" value="${basedir}/src"/> <!-- -java源文件的路径-->
<property name="lib" value="${basedir}/WebRoot/WEB-INF/lib"/> <!-- -web工程的所有lib的路径-->
<property name="webapp" value="${basedir}/WebRoot"/> <!-- web工程的WebRoot路径 -->
<!--<property name="cofig" value="${basedir}/resource/"/> 本工程没有 web工程的存放所有配置文件的目录-->
<property name="build.src" value="${basedir}/temp/${ant.project.name}/src"/> <!--存放java源文件的临时路径 -->
<property name="build.dest" value="${basedir}/temp/${ant.project.name}/WEB-INF/classes"/> <!--java文件编译后生成的class文件存放的路径 -->
<property name="buildwar.dest" value="${basedir}/temp/${ant.project.name}"/> <!--存放工程的总路径-->
<property name="jar.dest" value="${basedir}/temp/jar"/>
<property name="war.dest" value="${basedir}/temp/war"/> <!--存放编译后的war文件-->
<property name="j2ee.lib" value="${tomcat.home}/lib"/> <!--存放编译java文件需要的javaee的jar包-->
<!--将编译java文件所需要的所有java包都拷贝到指定目录中,后面编译java文件通过path的id引用-->
<path id="build.classpath">
<fileset dir="${lib}">
<include name="**/*.jar"/>
</fileset>
<fileset dir="${j2ee.lib}">
<include name="**/*.jar"/> <!--相当于把include的文件都拷贝到fileset指定的dir目录中-->
</fileset>
</path>
</target>
<!--清除临时目录-->
<target name="clean" depends="setting">
<delete dir="${basedir}\temp"/>
<echo message="[${datestamp}]删除 ${basedir}\temp 目录"/>
<echo message="[${datestamp}] 删除 ${basedir}\temp 目录 " file="${logfile}" append="true" level="warning"/>
</target>
<!--编译前准备-->
<target name="prepare" depends="clean,init,setting" description="创建打包需要的路径,拷贝源文件到打包路径下">
<mkdir dir="${build.src}"/>
<mkdir dir="${build.dest}"/>
<mkdir dir="${buildwar.dest}"/>
<mkdir dir="${jar.dest}"/>
<mkdir dir="${war.dest}"/>
<copy todir="${build.src}">
<fileset dir="${src}"/>
</copy>
<copy todir="${buildwar.dest}">
<fileset dir="${webapp}"/>
</copy>
<!-- 将本工程的配置文件也要放到对应目录-->
<copy todir="${build.dest}">
<fileset dir="${build.src}">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
<target name="compile" depends="prepare,setting" description="编译 java 文件,拷贝 properties 属性配置文件到编译后的路径下">
<echo message="***********开始编译 ${build.dest}***********"/>
<echo message="[${datestamp}] 原码路径 ${build.src}" file="${logfile}" append="true"/>
<javac srcdir="${build.src}" destdir="${build.dest}" encoding="utf-8" includeAntRuntime="false" >
<!--<compilerarg value="-Xlint:unchecked"/> -->
<classpath refid="build.classpath"/>
<compilerarg value="-Xlint"/>
</javac>
<echo message="***********结束编译***********"/>
</target>
<!-- 开始打war包,在linux命令行窗口中,执行ant antwar命令就可以进行制作war包的操作 -->
<target name="pakage_war" depends="compile,setting" description="打 war 包,不将 java 文件打入包内">
<delete dir="${build.src}"/>
<war warfile="${war.dest}/${ant.project.name}.war" webxml="${buildwar.dest}/WEB-INF/web.xml">
<!-- <lib dir="${buildwar.dest}/WEB-INF/lib"/>
<classes dir="${build.dest}"/> 这个注释掉时因为和下面的有重复 -->
<fileset dir="${buildwar.dest}"/>
</war>
</target>
<!--在linux命令行窗口中,执行ant publish命令就可以将war包拷贝到tomcat的webapps中-->
<target name="publish" depends="pakage_war,setting" description="发布 war 包至 tomcat 目录下">
<copy todir="${tomcat.home}/webapps">
<fileset dir="${war.dest}">
<include name="**/*.war"/>
</fileset>
</copy>
</target>
<!--启动容器-->
<target name="startup" depends="shutdown,publish,setting">
<echo message="[${datestamp}]启动容器..."/>
<exec executable="cmd.exe" dir="${tomcat.home}\bin">
<arg line="/c startup.bat"/>
</exec>
</target>
<!--关闭容器-->
<target name="shutdown" depends="setting">
<echo message="[${datestamp}]关闭容器..."/>
<exec executable="cmd.exe" dir="${tomcat.home}\bin">
<arg line="/c shutdown.bat"/>
</exec>
</target>
<target name="main" depends="startup"/>
<!--其他属性用法
● name 属性:指定 target 元素的名称,这个属性在一个 project 元素中是唯一的。我们可以通过指定 target 元素的名称来指定某个 target 。
● depends 属性:用于描述 target 之间的依赖关系,若与多个 target 存在依赖关系时,需要以“,”间隔。 Ant 会依照 depends 属性中 target 出现的顺序依次执行每个 target ,被依赖的target 会先执行。
● if 属性:用于验证指定的属性是存在,若不存在,所在 target 将不会被执行。
● unless 属性:该属性的功能与 if 属性的功能正好相反,它也用于验证指定的属性是否存在,若不存在,所在 target 将会被执行。
● description 属性:该属性是关于 target 功能的简短描述和说明。
<target name="version" if="ant.java.version">
<echo message="Java Version: ${ant.java.version}" />
</target>
<target name="print" depends="version" unless="docs">
<echo message="[${touch.time}]启动容器..." level="warning" file="${logfile}" append="true"/>
<description>
a depend example!
</description>
<echo message="The base dir is: ${basedir}" />
</target>
-->
</project>