`
子衿青青
  • 浏览: 106096 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

编写流程脚本build.xml

 
阅读更多

Ant 是 Apache 软件基金会的一个子项目,它有以下的优点:
1、跨平台性,纯 Java 语言编写,有很好的跨平台支持;
2、操作简单,Ant 是由一个内置任务和可选任务组成的。Ant运行时需要一个XML文件(默认为build.xml);
3、易维护, Ant 构建文件使用 XML 格式的文件,通过调用 target 树执行各种 task ,每个 task 实现了特定接口对象(也可以理解为实现各种功能),结构清晰,易维护。

 

Ant 可以集成到开发环境中,由于Ant的跨平台性和操作简单的特点,它很容易集成到一些开发环境中去。

 

开工:

这段内容摘自http://shawnqiu.iteye.com/blog/712284  测试用的内容,在此扩展下,也感谢

qiuxiaorong1979 童鞋的整理,不过格式编写格式还要加强哦:)
 
对于path的学习可以参考http://kouriba.iteye.com/blog/1629839童鞋的文章。
 
中间穿插有我标记的说明及注意事项(标记是红色的,保存后变了,我的标记之前是八个空格)。
有些内容格式的使用是多样的,这里只有一种格式,不一定是常用的,但是可以作参考之用。

 

<?xml version="1.0"?>
<project name="NES" default="doc">        --project 最外层节点,name可自起,default指默认运行哪一个target.一般写最后一个,最后一个再依赖前面的,如此循环执行所有的任务。
    <property name="NES.home" value="." />        --全局常量,自定义,name命名可以使用“.”隔开,如upgrade.login.name等
   <!-- 源jsp文件地址 -->
    <property name="jsp.dir" value="${NES.home}/WebRoot" />
    <!-- 源java文件地址 -->
    <property name="java.dir" value="${NES.home}/src" />
    <!-- 最终发布文件地址 -->
    <property name="dist.dir" value="${NES.home}/dist" />
    <!-- 最终class文件地址 -->
    <property name="classes.dir" value="${NES.home}/dist/WEB-INF/classes" />
    <!-- 最终jar文件地址 -->
    <property name="jar.dir" value="${NES.home}/jar" />

    <property name="lib.dir" value="lib" />
    <property name="dist.dir" value="dist" />
    <property name="doc.dir" value="doc"/>

    <!-- 定义classpath -->
    <path id="master-classpath">        --如上所述
        <fileset file="${NES.home}/WebRoot/WEB-INF/lib/*.jar" />
        <pathelement path="${classes.dir}"/>
    </path>

    <!-- 初始化 -->        --任务 01  可参考http://taink.iteye.com/blog/504034  童鞋的文章,一般任务编写都是从上到下按顺序创建任务的
   <target name="init">
      <delete dir="${jar.dir}"/>
      <delete dir="${dist.dir}"/>
      <mkdir dir="${jar.dir}" />
      <mkdir dir="${dist.dir}" />
      <mkdir dir="${classes.dir}" />
    </target>
    <!-- 编译 -->        --任务 02  depends指依赖int任务,应该不用多说了吧
    <target name="compile" depends="init" description="compile the source files">
        <javac srcdir="${java.dir}" destdir="${classes.dir}" target="1.6" includeantruntime="on" >        --srcdir:包含源文件的路径。destdir:编译后文件存放的目标文件夹,默认是当前文件夹。 
target:指定Java 虚拟机版本。includeantruntime:是否应在类路径中包括 Ant 运行时程序库。可参考http://zhaohaolin.iteye.com/blog/971131  
            <compilerarg line="-encoding UTF-8" />
            <classpath refid="master-classpath" />
        </javac>
    </target>
    <!-- 测试 -->        --任务  03  
    <target name="test" depends="compile" description="run junit test">
    </target>
    <!-- 打包 -->        --任务  04  
    <target name="pack" depends="test" description="make .jar file">
        <copy todir="${dist.dir}/WEB-INF/classes" preservelastmodified="true">        --copy可对文件或目录复制,fileset可指定copy哪些文件或目录
            <fileset dir="${java.dir}" >
                <include name="**/**"/>
                <include name="**.**"/>
                <exclude name="com/**"/>
            </fileset>
        </copy>
        <copy todir="${dist.dir}" preservelastmodified="true">
            <fileset dir="${jsp.dir}" >
                <include name="**/**"/>
                <include name="**.**"/>
                <exclude name="classes/**"/>
            </fileset>
        </copy>
        <jar destfile="${jar.dir}/nes.jar" basedir="${dist.dir}" />
    </target>
    <!-- 文档 -->        --任务  05  
    <target name="doc" depends="pack" description="create api doc">
    </target>
</project>

 

 扩展几个标签:

1、target下使用<echo></echo>可在打印自己想到表达或注释的内容。

2、target下使用<telnet></telnet>可登录远程服务器,如

       <telnet server="${server.ip}">        --read读取属性,write输入信息。
            <read>ogin:</read>
            <write>${server.login.name}</write>
            <read>assword:</read>
            <write>${server.login.pwd}</write>

            <read>${prompt_end}</read>        --$:服务器上的标示符号
            <write>rm -rf ${server.build.dir}</write>

            <read>${prompt_end}</read>
        </telnet>

3、target下使用<ftp></ftp>可远程传输文件。如

    <ftp server="${server.ip}" binary="true"
          remotedir="${home.dir}/${server.build.dir}"
          userid="${server.login.name}"
          password="${server.login.pwd}" depends="false">
          <fileset dir="${before_package_path}">
             <include name="*.tar.gz"/>
          </fileset>
     </ftp>

4、target下使用<sleep seconds="5"/>可以暂停5秒。

5、target下使用<exec></exec>可以执行命令。

     <exec dir="${jar.antfile.path}" executable="${jar.antfile.path}/build.bat"></exec>

6、

分享到:
评论

相关推荐

    WTL8.1(build 12085)(带集成安装脚本及资源美化)(03-25-2012)

    WTL版本为v8.1(build 12085 @ 3-25-2012),并做了以下的改动: 1. 编辑了.rc文件,使控件具有原生的中文字符支持 ...由于编写仓促,安装脚本(Install.bat)暂时只适用于VS2010,其它平台需要手工修改部分代码。

    gradle-4.4-all.zip

    Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。 gradle-4.4-all....

    Maven权威指南 很精典的学习教程,比ANT更好用

    编写接口项目程序 8. 优化和重构POM 8.1. 简介 8.2. POM清理 8.3. 优化依赖 8.4. 优化插件 8.5. 使用Maven Dependency插件进行优化 8.6. 最终的POM 8.7. 小结 II. Maven Reference 9. 项目对象模型 ...

    淘宝宝贝描述编辑器 KISSY Editor 2.0 beta

    3.1) 打包规则: - 各个组件通过各自的 build.xml 统一build 到外面, 不需要组件开发者手工build, 我们会定时统一build好提交到cdn上, 这个打包规则应该能够满足90%的需求, 如果某些特殊, 可以自行编写 build.xml;...

    apache-ant-1.9.3-src.tar

    每个ant脚本(缺省叫build.xml)中设置了一系列任务(target):比如对于一个一般的项目可能需要有以下任务。 * 任务1:usage 打印本脚本的帮助信息(缺省) * 任务2:clean 清空初始化环境 * 任务3:javadoc &lt;-- ...

    gradle-v4.2-bin 构建工具

    Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。 官网下载很慢的,...

    Maven2 的新特性.7z

    • Maven1:project.xml、maven.xml、project.properties和build.properties。 • Maven2:pom.xml和settings.xml。 POM是Maven的核心对象模型,在Maven2中POM已由project.xml转移到pom.xml中使用,版本也由3升级...

    WTL8.1(build 12085)(带集成安装脚本及资源美化)

    在WTL(build12085)的基础上做出的修改如下: 1. 为rc文件增加原生中文支持 2. 附带UICC,使SDK v7.0A也能够支持.xml编译,使用ribbon 3. 图标资源ico及toolbar.bmp的美化 4. 自编写Installation.bat文件,自动设置...

    Decompilers-plugin:适用于Android Studio的插件,其中集成了一些Java反编译器

    您应该从git中签出源代码,例如通过执行以下命令: git clone --depth 1 git://git.jetbrains.org/idea/community.git target_directory 您可以选择通过运行ant脚本build.xml从Intellij Idea或从命令行直接构建...

    gradle-4.6.zip

    Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。

    基于springboot的二手车交易系统的设计与实现.zip

    依赖管理文件:Maven或Gradle的配置文件(pom.xml或build.gradle),列出了项目构建所需的所有依赖库。文档:一些项目可能还会提供README文件或其他文档,说明如何运行项目、如何进行开发和测试,以及可能的许可证信息...

    gradle-7.4-all.zip 极速下载

    Gradle免费版支持maven、Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写,Gradle免费版是一个基于Apache Ant和Apache Maven概念的项目自动化...

    gradle-4.10.2-all

    Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。

    Gradle_API_4.2 ( CHM格式 )

    Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。

    Gradle_API_3.5 ( CHM格式 )

    Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。

    gradle-4.4-bin.zip

    Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。 sha256:fa4873ae...

    gradle-3.3-all

    基于JVM的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。面向Java应用为主。当前其支持的语言限于Java、Groovy、...

    OpenCms ANT Build-开源

    OpenCms ANT Build允许从构建树(例如,在您的IDE中)构建OpenCms模块,然后可以将其安装在OpenCms服务器上。 它包含2个用于编写自定义生成过程脚本的ANT任务。 包含带有build.xml的示例树。

    LoginActivityTemplate:Parse 后端的登录活动模板

    登录活动模板####这是使用... ####内容LoginActivity.java - 处理登录功能的主类activity_login.xml - 呈现 UI 的布局文件2 个build.gradle文件 - 一个用于项目,一个用于应用####如何使用。 将LoginActivity.j

    gradle学习文档

    Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。文档详细说明的...

Global site tag (gtag.js) - Google Analytics