`

完整ant自动编译打包和发布脚本

阅读更多
xml 代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <project basedir="." default="build" name="potato">  
  4.     <property file="ant.properties"/>  
  5.     <property environment="env"/>  
  6.     <property name="tomcat.path" value="${tomcat.path}"/>  
  7.     <echo message="tomcat.path = ${tomcat.path}"/>  
  8.            
  9.     <property name="websrc.dir" value="WebContent"/>  
  10.     <property name="src.dir" value="src"/>  
  11.     <property name="build.dir" value="build"/>  
  12.     <property name="dist.dir" value="dist"/>  
  13.     <property name="deploy.dir" value="${tomcat.path}/webapps"/>  
  14.     <property name="dest.jar" value="potato.jar"/>  
  15.     <property name="dest.war" value="potato.war"/>  
  16.     <property name="jdk.source" value="1.5"/>  
  17.     <property name="jdk.target" value="1.5"/>  
  18.     <property name="src.zipfile" value="potato.zip"/>  
  19.     <property name="build.out" value="${build.dir}/WEB-INF/classes" />  
  20.     <property name="dest.zip" value="potato.zip" />  
  21.     <property name="deploy.web.dir" value="potato" />      
  22.            
  23.        
  24.     <patternset id="jar.pattern"><include name="**/*.jar"/></patternset>  
  25.     <patternset id="config.pattern">  
  26.         <include name="**/*.xml"/>  
  27.         <include name="**/*.properties"/>  
  28.         <include name="**/*.prop"/>  
  29.         <include name="**/*.conf"/>  
  30.         <include name="**/*.tld"/>  
  31.         <include name="**/*.ftl"/>  
  32.     </patternset>  
  33.     <path id="compile.classpath">  
  34.         <fileset dir="${tomcat.path}/common/lib">  
  35.             <patternset refid="jar.pattern"/>  
  36.         </fileset>  
  37.         <fileset dir="${websrc.dir}/WEB-INF/lib">  
  38.             <patternset refid="jar.pattern"/>  
  39.         </fileset>  
  40.     </path>  
  41.        
  42.     <patternset id="build.pattern">  
  43.       <include name="**/*.jar"/>  
  44.       <include name="**/*.class"/>  
  45.       <include name="**/*.xml"/>  
  46.       <include name="**/*.properties"/>  
  47.       <include name="**/*.prop"/>  
  48.       <include name="**/*.conf"/>  
  49.       <include name="**/*.tld"/>  
  50.       <include name="**/*.ftl"/>  
  51.       <include name="**/*.jsp"/>  
  52.       <include name="**/*.htm"/>  
  53.       <include name="**/*.html"/>  
  54.       <include name="**/*.js"/>  
  55.       <include name="**/*.css"/>  
  56.       <include name="**/*.swf"/>  
  57.       <include name="**/*.jpg"/>  
  58.       <include name="**/*.gif"/>  
  59.       <include name="**/*.png"/>  
  60.       <include name="**/*.rar"/>  
  61.       <include name="**/*.wmv"/>  
  62.       <include name="**/*.mp3"/>  
  63.       <include name="**/*.3gp"/>  
  64.       <include name="**/*.doc"/>  
  65.       <exclude name="WEB-INF/**/*"/>  
  66.       <exclude name="**/web.xml"/>  
  67.     </patternset>  
  68.     <patternset id="src.pattern">  
  69.       <include name="**/*.java"/>  
  70.       <include name="**/*.xml"/>  
  71.       <include name="**/*.properties"/>  
  72.       <include name="**/*.prop"/>  
  73.       <include name="**/*.conf"/>  
  74.       <include name="**/*.tld"/>  
  75.       <include name="**/*.ftl"/>  
  76.       <include name="**/*.jsp"/>  
  77.       <include name="**/*.htm"/>  
  78.       <include name="**/*.html"/>  
  79.       <include name="**/*.js"/>  
  80.       <include name="**/*.css"/>  
  81.       <include name="**/*.swf"/>  
  82.       <include name="**/*.jpg"/>  
  83.       <include name="**/*.gif"/>  
  84.       <include name="**/*.png"/>  
  85.       <exclude name="**/web.xml"/>  
  86.     </patternset>  
  87.   
  88.     <tstamp>  
  89.         <format property="date.current" pattern="yyyyMMdd"/>  
  90.         <format property="time.current" pattern="HHmmss"/>  
  91.     </tstamp>  
  92.   
  93.     <target name="clean">  
  94.         <delete dir="${build.dir}"/>  
  95.         <delete dir="${dist.dir}"/>  
  96.         <!--delete file="${dist.dir}/${dest.war}" /-->  
  97.     </target>  
  98.        
  99.     <target name="init">  
  100.         <mkdir dir="${build.dir}"/>  
  101.         <mkdir dir="${build.dir}/classes"/>  
  102.         <mkdir dir="${dist.dir}"/>  
  103.         <mkdir dir="${build.out}"/>  
  104.     </target>  
  105.        
  106.     <target name="compile" depends="init">  
  107.         <javac srcdir="${src.dir}" destdir="${build.dir}/classes" debug="true">  
  108.             <classpath refid="compile.classpath" />  
  109.         </javac>  
  110.         <copy todir="${build.dir}/classes">  
  111.             <fileset dir="${src.dir}">  
  112.                 <patternset refid="config.pattern"/>  
  113.             </fileset>  
  114.         </copy>  
  115.     </target>  
  116.   
  117.     <!-- deploy complie-->  
  118.     <target name="deploycompile" depends="init">  
  119.         <copy todir="${build.dir}">  
  120.             <fileset dir="${websrc.dir}">  
  121.                 <exclude name="**/*.java" />  
  122.                 <exclude name="**/servlet-api.jar" />  
  123.                 <exclude name="resource/**/*"/>  
  124.                 <exclude name="images/**/*"/>  
  125.             </fileset>  
  126.         </copy>  
  127.         <javac srcdir="${src.dir}" debug="true" destdir="${build.out}" >  
  128.             <classpath refid="compile.classpath" />  
  129.         </javac>  
  130.   
  131.         <copy todir="${build.out}">  
  132.             <fileset dir="${src.dir}">  
  133.                 <exclude name="**/*.java" />  
  134.                 <exclude name="resource/**/*"/>  
  135.                 <exclude name="images/**/*"/>  
  136.             </fileset>  
  137.         </copy>  
  138.     </target>  
  139.        
  140.     <target name="archive" depends="compile">  
  141.         <delete file="${dist.dir}/${dest.jar}" />  
  142.         <jar destfile="${dist.dir}/${dest.jar}"  
  143.             basedir="${build.dir}/classes" />  
  144.     </target>  
  145.        
  146.     <target name="build" depends="compile">  
  147.         <delete file="${dist.dir}/${dest.war}" />  
  148.         <war destfile="${dist.dir}/${dest.war}" webxml="${websrc.dir}/WEB-INF/web.xml">  
  149.             <classes dir="${build.dir}/classes"/>  
  150.             <webinf dir="${websrc.dir}/WEB-INF"/>  
  151.             <!--lib dir="${websrc.dir}/WEB-INF/lib"/-->  
  152.             <fileset dir="${websrc.dir}">  
  153.                 <patternset refid="build.pattern"/>  
  154.                 <exclude name="resource/**/*"/>  
  155.                 <exclude name="images/**/*"/>  
  156.             </fileset>         
  157.         </war>  
  158.         <!--copy file="${dist.dir}/${dest.war}" tofile="${dist.dir}/${date.current}.${time.current}_program_${dest.war}"/-->  
  159.     </target>  
  160.   
  161.     <target name="fullbuild" depends="compile">  
  162.         <delete file="${dist.dir}/${dest.war}" />  
  163.         <war destfile="${dist.dir}/${dest.war}" webxml="${websrc.dir}/WEB-INF/web.xml">  
  164.             <classes dir="${build.dir}/classes"/>  
  165.             <webinf dir="${websrc.dir}/WEB-INF"/>  
  166.             <!--lib dir="${websrc.dir}/WEB-INF/lib"/-->  
  167.             <fileset dir="${websrc.dir}">  
  168.                 <patternset refid="build.pattern"/>  
  169.             </fileset>         
  170.         </war>  
  171.         <copy file="${dist.dir}/${dest.war}" tofile="${dist.dir}/${date.current}.${time.current}_full_${dest.war}"/>  
  172.     </target>  
  173.   
  174.        
  175.     <target name="deploy" depends="unzip">  
  176.         <echo message="${deploy.dir}" />  
  177.         <delete dir="${build.dir}"/>  
  178.     </target>  
  179.   
  180.     <target name="zip" depends="deploycompile">  
  181.         <echo message="now stopping tomcat service"/>  
  182.         <exec executable="sc">  
  183.             <arg line="stop Tomcat5"/>  
  184.         </exec>  
  185.         <delete file="${dist.dir}/${dest.zip}" />  
  186.         <zip destfile="${deploy.dir}/${dest.zip}">  
  187.             <fileset dir="${build.dir}">  
  188.                 <include name="**/*"/>  
  189.                 <exclude name="resource/**/*"/>  
  190.                 <exclude name="images/**/*"/>  
  191.             </fileset>  
  192.         </zip>  
  193.     </target>  
  194.   
  195.     <target name="unzip" depends="zip">  
  196.         <sleep seconds="60"/>  
  197.         <unzip dest="${deploy.dir}/${deploy.web.dir}" overwrite="true" src="${deploy.dir}/${dest.zip}">  
  198.         </unzip>  
  199.         <echo message="now starting tomcat service"/>  
  200.         <exec executable="sc">  
  201.             <arg line="start Tomcat5"/>  
  202.         </exec>  
  203.     </target>      
  204.        
  205. </project>  
分享到:
评论
2 楼 java-admin 2008-01-30  
    
楼主 你厉害
1 楼 java-admin 2008-01-30  
这么好的东西,没有人顶,真是的!

相关推荐

    通过ant脚本,编译打包android工程

    通过ant脚本,编译打包android工程。 编译打包android工程的ant脚本,Android官方提供的打包脚本。 有注释

    ANDROID_ANT自动编译打包签名教程

    ### ANDROID_ANT自动编译打包签名教程 #### 一、前言 随着移动应用开发的不断深入和技术迭代,为了提高开发效率与版本发布的便捷性,自动化构建工具的应用变得尤为重要。ANT作为一款开源的Java编译工具,在Android...

    ant脚本编译jar

    在Java开发过程中,打包和部署是必不可少的环节,而`Ant`作为一个强大的构建工具,能够帮助我们自动化这些任务。本文将深入探讨如何使用`Ant`脚本来编译并创建一个`JAR`文件,以此来理解`Ant`脚本的工作原理和实际...

    Ant自动打包SDK脚本

    Ant自动打包SDK脚本是Java开发中常用的一种自动化构建工具,它基于Apache Ant,一个用Java编写的构建工具,能够帮助开发者实现项目的编译、测试、打包和部署等一系列任务的自动化。这个脚本专为SDK开发者设计,可以...

    ant打包编译全套资料

    Ant以其灵活性和可扩展性,通过XML格式的构建文件(build.xml)来定义任务,使得开发者能够自动化执行各种构建过程。 在Ant中,"标签"是构建文件的核心元素,它们定义了具体的任务和操作。例如,`&lt;project&gt;`标签是...

    使用Ant编译打包

    **Ant编译打包详解** Ant 是 Apache 软件基金会的一个开源项目,它是一个基于Java的构建工具,类似于Make,但更为现代且专为Java设计。Ant使用XML来描述构建过程,包括编译、测试、打包和部署等任务,使得开发者...

    java项目ant打包脚本

    Java项目中的Ant打包脚本是开发过程中的一个重要环节,它使得开发者能够自动化构建、测试和部署应用程序。Ant是一个基于XML的构建工具,由Apache软件基金会开发,它在Java社区广泛使用,替代了早期的Makefile,因为...

    ant自动化发布脚本

    利用ant,自动化发布工程。具体过程包括:备份之前发布的工程,从svn checkout工程,编译工程,打包工程,关闭web服务器,删除已发布在web服务器的工程,复制打包的工程到web服务器,解压工程,启动web服务器。

    Ant自动打包用的.

    Ant基于XML来定义任务和目标,使得开发者可以编写可重复执行的构建脚本,实现软件项目的构建过程自动化。 标题中的"Ant自动打包用的"表明我们将讨论的是Ant在软件打包过程中的应用。在Java开发中,打包通常指的是将...

    Ant1.8.2 编译打包工具

    2. **apache-ant-1.8.2-bin.zip**:这是二进制发布的版本,包含预编译的Ant可执行文件和其他运行时需要的文件,如lib目录下的依赖库。解压后,只需将其添加到系统路径,即可在命令行中直接使用ant命令进行构建。二...

    Powershell(脚本) Ant(编译)实现一键打包

    1. **Ant编译准备**:假设Android项目位于`D:\workspace\MyApp`,首先确认是否存在`build.xml`文件,这是Ant编译所必需的配置文件。若不存在,可通过Android SDK的`android update project`命令自动生成。随后,修改...

    通过脚本,编译打包android工程

    通过ant脚本,编译打包android工程, 编译打包android工程的ant脚本。

    SVN+ant 服务器代码打包编译流程详解,内含详细安装以及操作说明

    在这个SVN+ant服务器代码打包编译流程中,我们将深入探讨这两个工具的集成使用,以及如何通过build.xml和build.properties文件实现自动化编译。 首先,让我们了解SVN的安装和配置。在Windows上,你可以下载...

    ant批量打包脚本

    在Android或Java开发中,"ant批量打包脚本"是一个非常实用的技巧,它可以帮助开发者高效地完成应用的打包工作,尤其在面临多版本、多渠道发布时更为显著。Ant是Apache组织提供的一款开源构建工具,类似于Java领域的...

    Ant编译打包android工程流程

    ### Ant编译打包Android工程流程详解 #### 一、Ant编译打包步骤 在深入了解Ant如何帮助我们构建Android项目之前,我们先来了解整个编译打包的过程。 1. **使用aapt为项目资源生成R.java文件** - **工具介绍**:...

    ant自动打包编译android custom_rules和ant.properties文件

    本篇文章将深入探讨如何使用Ant自动打包编译Android应用,并重点介绍`custom_rules.xml`和`ant.properties`这两个配置文件的作用。 `Ant.properties`是Ant构建过程中的一个关键配置文件,它用于存储项目特定的属性...

    App自动化之使用Ant编译项目多渠道打包

    本文将详细介绍如何使用Apache Ant工具来编译项目并实现多渠道自动打包。 首先,了解Ant。Ant是一个开源的Java构建工具,它允许开发者通过XML配置文件定义任务来自动化构建过程。在Android开发中,Ant可以用来编译...

    mac下ant打包android

    在Android应用开发中,构建和打包过程是必不可少的环节,特别是在多渠道发布时,需要针对不同的市场或平台生成定制的APK。...通过理解和配置Ant脚本,你可以有效地管理和自动化整个打包过程,提高开发效率。

    ant自动编译,上传,启动,部署,启动

    这个压缩包文件"ant-autodeploy"很可能包含了Ant配置文件、脚本和相关的说明文档,用于实现自动化的编译、上传、启动和部署流程。 首先,让我们了解一下Ant的基本结构。Ant的核心是构建文件,通常命名为"build.xml...

    编译打包工具-Ant

    编译打包工具-Ant Ant 是一种基于 Java 的 build 工具,理论上来说,它有些类似于(Unix)C 中的 make,但没有 make 的缺陷。Ant 的原作者在多种(硬件)平台上开发软件时,无法忍受这些工具的限制和不便。Ant 用 ...

Global site tag (gtag.js) - Google Analytics