`
flamenco
  • 浏览: 41825 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Ant脚本自动构建打包

 
阅读更多
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project name="xxx-analysis-plugin-1.0.0-SNAPSHOT" default="all" basedir=".">
<!--ANT 1.7 is required                                        -->
<property environment="currentenv" />

<property name="app.name" value="analysis-server-1.0.0-SNAPSHOT" />
<property name="app.jar" value="${app.name}.jar" />
<property name="app.bin.zip" value="${app.name}.bin.zip" />
<property name="app.cfg.zip" value="${app.name}.cfg.zip" />
<property name="app.lib.zip" value="${app.name}.lib.zip" />
<property name="app.libs.zip" value="${app.name}.libs.zip" />
<property name="app.deploy.zip" value="${app.name}.deploy.zip" />
<property name="bin.dir" value="bin" />
<property name="lib.dir" value="lib" />
<property name="libs.dir" value="libs" />
<property name="cfg.dir" value="conf" />

<property name="build.dir" value="build" />
<property name="build.src" value="${build.dir}/src" />
<property name="build.classes" value="${build.dir}/classes" />
<property name="build.bin" value="${build.dir}/bin" />
<property name="build.cfg" value="${build.dir}/conf" />
<property name="build.lib" value="${build.dir}/lib" />
<property name="build.libs" value="${build.dir}/libs" />
<property name="build.project" value="${build.dir}/project" />
<property name="build.deploy" value="${build.dir}/deploy" />

<property name="dist.dir" value="dist" />
<property name="release" value="${dist.dir}/release" />
<property name="source" value="${dist.dir}/source" />

<tstamp>
<format property="date" pattern="yyyy-MM-dd" />
</tstamp>

<path id="build.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar" />
</fileset>
</path>

<target name="clean">
<echo message="Removing old directory structure..." />
<delete dir="${build.dir}">
</delete>
</target>

<!-- =================================
          target: init             
         ================================= -->
<target name="init" depends="clean">

<mkdir dir="${build.dir}" />
<mkdir dir="${build.src}" />
<mkdir dir="${build.classes}" />
<mkdir dir="${build.bin}" />
<mkdir dir="${build.cfg}" />
<mkdir dir="${build.lib}" />
<mkdir dir="${build.libs}" />
<mkdir dir="${build.project}" />
<mkdir dir="${build.deploy}" />

<mkdir dir="${dist.dir}" />
<mkdir dir="${release}" />
<mkdir dir="${source}" />
<mkdir dir="${release}/${date}" />
<mkdir dir="${source}/${date}" />

<copy todir="${build.project}">
<fileset dir="${basedir}">
<include name="**/**/*.*" />
</fileset>
</copy>

<copy todir="${build.src}">
<fileset dir="src/main/java">
<include name="com/**/*.*" />
</fileset>
<fileset dir="src/main/resources">
<include name="*.*" />
</fileset>
</copy>

<copy todir="${build.classes}">
<fileset dir="target/classes">
<include name="com/**/*.*" />
</fileset>
</copy>

<copy todir="${build.bin}">
<fileset dir="bin">
<include name="*.*" />
</fileset>
</copy>

<copy todir="${build.cfg}">
<fileset dir="conf">
<include name="*.*" />
</fileset>
</copy>
<copy todir="${build.libs}">
<fileset dir="lib/commons">
<include name="*.*" />
</fileset>
<fileset dir="lib/ibatis">
<include name="*.*" />
</fileset>
<fileset dir="lib/log4j">
<include name="*.*" />
</fileset>
<fileset dir="lib/meta">
<include name="*.*" />
</fileset>
<fileset dir="lib/mongodb">
<include name="*.*" />
</fileset>
<fileset dir="lib/oracle">
<include name="*.*" />
</fileset>
<fileset dir="lib/spring">
<include name="*.*" />
</fileset>
<fileset dir="lib/sqlserver">
<include name="*.*" />
</fileset>
</copy>
</target>

<target name="compile" depends="init">
<!--编译-->
<javac source="1.6" srcdir="${build.src}" destdir="${build.classes}" debug="on" failonerror="true" deprecation="true" optimize="true" encoding="UTF-8">
<classpath refid="build.classpath" />
</javac>
</target>

<!-- =================================
          target: jar             
         ================================= -->
<target name="jars" depends="compile">
<pathconvert property="mf.classpath" pathsep=" ">
<mapper>
<chainedmapper>
<flattenmapper />
<globmapper from="*" to="*" />
</chainedmapper>
</mapper>
<path refid="build.classpath" />
</pathconvert>

<jar basedir="${build.classes}" jarfile="${build.lib}/${app.jar}">
<manifest>
<attribute name="Main-Class" value="com.xxx.analysis.ServerStartup" />
<!-- finally, use the magically generated libs path -->
<attribute name="Class-Path" value="${mf.classpath}" />
</manifest>
</jar>
</target>

<target name="package.bin.zip">
<zip destfile="${release}/${date}/${app.name}.bin.zip">
<fileset dir="${build.bin}">
<include name="*.*" />
</fileset>
</zip>
</target>

<target name="package.cfg.zip">
<zip destfile="${release}/${date}/${app.name}.cfg.zip">
<fileset dir="${build.cfg}">
<include name="*.*" />
</fileset>
</zip>
</target>

<target name="package.lib.zip">
<zip destfile="${release}/${date}/${app.name}.lib.zip">
<fileset dir="${build.lib}">
<include name="*.*" />
</fileset>
</zip>
</target>

<target name="build.deploy">
<zip destfile="${release}/${date}/${app.name}.lib.zip">
<fileset dir="${build.lib}">
<include name="*.*" />
</fileset>
</zip>
<copy todir="${build.deploy}/bin">
<fileset dir="bin">
</fileset>
<fileset dir="${build.classes}">
<include name="*.*" />
</fileset>
<fileset dir="${build.src}">
<include name="*.*" />
</fileset>
</copy>
<copy todir="${build.deploy}/conf">
<fileset dir="conf">
</fileset>
</copy>
<copy todir="${build.deploy}/lib">
<fileset dir="${build.lib}">
<include name="*.*" />
</fileset>
<fileset dir="${build.libs}">
<include name="*.*" />
</fileset>
</copy>
</target>

<target name="package.deploy.zip" depends="build.deploy">
<zip destfile="${release}/${date}/${app.name}.deploy.zip">
<fileset dir="${build.deploy}">
<filename name="**/*.*" />
</fileset>
</zip>
</target>

<target name="package.deploy.sms.zip" depends="build.deploy">
<zip destfile="${release}/${date}/${app.name}.sms.deploy.zip">
<fileset dir="${build.deploy}">
<include name="lib/*.*" />
<include name="conf/config-sms*.*" />
<include name="bin/*.*" />
<exclude name="bin/*.bat" />
</fileset>
<fileset dir="${build.deploy}">
<include name="bin/*sms.bat" />
</fileset>
</zip>
</target>

<target name="package.deploy.mms.zip" depends="build.deploy">
<zip destfile="${release}/${date}/${app.name}.mms.deploy.zip">
<fileset dir="${build.deploy}">
<include name="lib/*.*" />
<include name="conf/config-mms*.*" />
<include name="bin/*.*" />
<exclude name="bin/*.bat" />
</fileset>
<fileset dir="${build.deploy}">
<include name="bin/*mms.bat" />
</fileset>
</zip>
</target>

<target name="package.deploy.mail.zip" depends="build.deploy">
<zip destfile="${release}/${date}/${app.name}.mail.deploy.zip">
<fileset dir="${build.deploy}">
<include name="lib/*.*" />
<include name="conf/config-mail*.*" />
<include name="bin/*.*" />
<exclude name="bin/*.bat" />
</fileset>
<fileset dir="${build.deploy}">
<include name="bin/*mail.bat" />
</fileset>
</zip>
</target>

<target name="package.deploy.inform.zip" depends="build.deploy">
<zip destfile="${release}/${date}/${app.name}.inform.deploy.zip">
<fileset dir="${build.deploy}">
<include name="lib/*.*" />
<include name="conf/config-inform*.*" />
<include name="bin/*.*" />
<exclude name="bin/*.bat" />
</fileset>
<fileset dir="${build.deploy}">
<include name="bin/*inform.bat" />
</fileset>
</zip>
</target>

<target name="package">
<antcall target="package.lib.zip">
</antcall>
<antcall target="package.deploy.zip">
</antcall>
<antcall target="package.deploy.sms.zip">
</antcall>
<antcall target="package.deploy.mms.zip">
</antcall>
<antcall target="package.deploy.mail.zip">
</antcall>
<antcall target="package.deploy.inform.zip">
</antcall>
</target>

<target name="all" depends="jars,package">
</target>
</project>
分享到:
评论

相关推荐

    利用ant脚本 自动构建svn增量.docx

    【Ant脚本自动构建SVN增量】是一种高效且节省资源的软件开发实践,它使得开发和测试团队能够自动化处理从代码提交到构建、打包、再到部署的整个过程。使用Ant,一个基于XML的构建工具,可以创建可重复执行的脚本来...

    java项目ant打包脚本

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

    Ant自动打包SDK脚本

    对于初学者来说,理解Ant脚本的结构和任务定义是非常重要的,这将帮助他们更好地理解和定制现有的脚本。同时,Ant与Maven、Gradle等现代构建工具相比,虽然在某些方面显得较为繁琐,但它提供的灵活性和可定制性仍然...

    teamcity-ant脚本.rar

    在TeamCity中,Ant脚本扮演着至关重要的角色,因为Ant是Java项目常用的构建工具,能够定义和执行构建过程。下面我们将深入探讨TeamCity与Ant脚本的结合使用及其相关知识点。 1. **Ant简介** Ant是Apache软件基金会...

    ant 脚本从svn上取代码打包代码全,同时包括相关的jar包

    Ant是Apache组织开发的一款Java构建工具,它使用XML来描述构建过程,包括编译、测试、打包、部署等任务。...在实际开发中,Ant脚本可以被定制以满足各种复杂的构建需求,确保项目的构建过程自动化、可重复且高效。

    ant脚本资料ant

    - **XML结构**:Ant脚本以XML格式编写,遵循特定的命名空间和元素结构,如`&lt;project&gt;`、`&lt;target&gt;`、`&lt;task&gt;`等。 - **属性(Attribute)**:任务通常有属性,用来设置参数,例如`srcdir`用于指定源代码目录,`...

    Ant构建中使用JS脚本方法

    5. **错误处理**:JavaScript中的异常处理机制也能在Ant脚本中使用,这对于确保构建过程的健壮性至关重要。 在给定的文件列表中,我们看到了一个名为`jeecms-db-2012-sp1.sql`的文件。这很可能是Jeecms内容管理系统...

    ant 多渠道自动打包

    总的来说,`Ant`多渠道自动打包能显著提高开发效率,但需要对Ant脚本和Android SDK有一定的了解。解决"appt没找到"问题通常涉及到检查和配置SDK环境,确保所有必要的工具都可访问。在实践中,开发者应不断调整和优化...

    使用ant构建android自动化打包实例源码

    - 这个压缩包中的"Command4Ant"可能是一个特定的Ant脚本或者工具集,用于简化或扩展Ant命令,以适应更复杂的Android构建需求。 - 可能包含自定义的任务或宏定义,以处理特定的构建步骤,比如处理依赖库、生成...

    Ant自动打包用的.

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

    jenkins+ant+jmeter自动化接口测试框架搭建

    JMeter起初设计时就支持使用Ant进行测试脚本的打包和构建,而Ant是一个广泛使用的Java库和命令行工具,用于自动化软件的构建和测试过程。而Jenkins是一个开源的自动化服务器,支持持续集成(CI)实践,能够自动执行...

    ant批量打包脚本

    通过Ant脚本,开发者可以预先定义好各个渠道的配置文件,然后脚本会根据这些配置自动创建对应市场的打包文件,极大地提高了工作效率。 创建Ant批量打包脚本的基本步骤如下: 1. **安装和配置Ant**:首先确保系统...

    错误归类学习.zip_ant脚本打包

    在IT行业中,Ant是一个广泛应用的自动化构建工具,主要用于Java项目的构建和打包。它是由Apache软件基金会开发的一个开源项目,提供了一种基于XML的构建文件格式,使得开发者可以定义构建过程中的各种任务,如编译、...

    自动构建ant

    6. **文件集(Fileset)**:文件集允许你在Ant脚本中指定一组文件,例如所有.java文件或者特定目录下的所有文件。这在处理大量文件时非常有用。 7. **Junit任务**:Ant有内置的`&lt;junit&gt;`任务,可以方便地集成JUnit...

    Android自动打包、签名、优化、上传ANT脚本

    ### Android自动打包、签名、优化、上传ANT脚本详解 #### 一、概述 随着移动互联网的发展,Android应用开发越来越受到开发者的重视。为了提高开发效率、减少人为错误,自动化工具变得尤为重要。其中,利用ANT脚本...

    eclipse基于ant自动化打包

    Ant脚本可以通过`&lt;replace&gt;`或`&lt;filter&gt;`任务来修改这个文件以适应不同的打包需求。 6. **执行打包**:在Eclipse中,右键点击build.xml,选择"Run As" &gt; "Ant Build",执行打包任务。完成后,你将在指定的输出目录...

    ANT 自动化构建

    `build.xml`是ANT的构建脚本,包含了所有构建任务的描述,如编译源代码、打包、测试和部署等步骤。这些任务通过ANT的任务(tasks)来实现,例如`javac`任务用于编译Java源代码,`jar`任务用于创建JAR文件,`copy`...

    android使用ant自动构建示例

    8. **执行Ant脚本**:在命令行中,进入项目根目录并运行`ant build`命令,Ant会按照build.xml中的配置执行构建过程。如果一切配置正确,最终会在指定的输出目录下得到签名的APK文件。 在提供的文件列表中,`...

    shell脚本+ant脚本

    Shell脚本和Ant脚本是两种在IT行业中广泛使用的自动化工具,主要应用于Unix/Linux系统和Java项目的构建。这里我们将深入探讨这两个概念以及它们在实际工作中的应用。 首先,Shell脚本是基于Unix/Linux命令行环境的...

    分享一个项目的Ant脚本配制

    标题中的“分享一个项目的Ant脚本配置”表明我们将探讨的是如何使用Apache Ant工具来构建和管理Java项目。Ant是开源的构建工具,广泛应用于Java项目,它可以自动化编译、打包、测试等开发流程。 在描述中提到的...

Global site tag (gtag.js) - Google Analytics