ant 编译打包部署启动容器

<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>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值