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 童鞋的整理,不过格式编写格式还要加强哦:)
中间穿插有我标记的说明及注意事项(标记是红色的,保存后变了,我的标记之前是八个空格)。
有些内容格式的使用是多样的,这里只有一种格式,不一定是常用的,但是可以作参考之用。
<?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、
分享到:
相关推荐
WTL版本为v8.1(build 12085 @ 3-25-2012),并做了以下的改动: 1. 编辑了.rc文件,使控件具有原生的中文字符支持 ...由于编写仓促,安装脚本(Install.bat)暂时只适用于VS2010,其它平台需要手工修改部分代码。
Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。 gradle-4.4-all....
编写接口项目程序 8. 优化和重构POM 8.1. 简介 8.2. POM清理 8.3. 优化依赖 8.4. 优化插件 8.5. 使用Maven Dependency插件进行优化 8.6. 最终的POM 8.7. 小结 II. Maven Reference 9. 项目对象模型 ...
3.1) 打包规则: - 各个组件通过各自的 build.xml 统一build 到外面, 不需要组件开发者手工build, 我们会定时统一build好提交到cdn上, 这个打包规则应该能够满足90%的需求, 如果某些特殊, 可以自行编写 build.xml;...
每个ant脚本(缺省叫build.xml)中设置了一系列任务(target):比如对于一个一般的项目可能需要有以下任务。 * 任务1:usage 打印本脚本的帮助信息(缺省) * 任务2:clean 清空初始化环境 * 任务3:javadoc <-- ...
Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。 官网下载很慢的,...
• Maven1:project.xml、maven.xml、project.properties和build.properties。 • Maven2:pom.xml和settings.xml。 POM是Maven的核心对象模型,在Maven2中POM已由project.xml转移到pom.xml中使用,版本也由3升级...
在WTL(build12085)的基础上做出的修改如下: 1. 为rc文件增加原生中文支持 2. 附带UICC,使SDK v7.0A也能够支持.xml编译,使用ribbon 3. 图标资源ico及toolbar.bmp的美化 4. 自编写Installation.bat文件,自动设置...
您应该从git中签出源代码,例如通过执行以下命令: git clone --depth 1 git://git.jetbrains.org/idea/community.git target_directory 您可以选择通过运行ant脚本build.xml从Intellij Idea或从命令行直接构建...
Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。
依赖管理文件:Maven或Gradle的配置文件(pom.xml或build.gradle),列出了项目构建所需的所有依赖库。文档:一些项目可能还会提供README文件或其他文档,说明如何运行项目、如何进行开发和测试,以及可能的许可证信息...
Gradle免费版支持maven、Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写,Gradle免费版是一个基于Apache Ant和Apache Maven概念的项目自动化...
Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。
Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。
Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。
Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。 sha256:fa4873ae...
基于JVM的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。面向Java应用为主。当前其支持的语言限于Java、Groovy、...
OpenCms ANT Build允许从构建树(例如,在您的IDE中)构建OpenCms模块,然后可以将其安装在OpenCms服务器上。 它包含2个用于编写自定义生成过程脚本的ANT任务。 包含带有build.xml的示例树。
登录活动模板####这是使用... ####内容LoginActivity.java - 处理登录功能的主类activity_login.xml - 呈现 UI 的布局文件2 个build.gradle文件 - 一个用于项目,一个用于应用####如何使用。 将LoginActivity.j
Gradle是一个基于JVM的构建工具,是一款通用灵活的构建工具,支持maven, Ivy仓库,支持传递性依赖管理,而不需要远程仓库或者是pom.xml和ivy.xml配置文件,基于Groovy,build脚本使用Groovy编写。文档详细说明的...