Apache Ant自动化脚本
http://blog.csdn.net/yubo_725/article/details/52326746
一、什么是Ant
只要使用过Linux系统的读者,应该知道 make这个命令。当编译Linux内核及一些软件的源程序时,经常要用这个命令。Make命令其实就 是一个项目管理工具,而Ant所实现功能与此类似。像make,gnumake和nmake这些编译工具都有 一定的缺陷,但是Ant却克服了这些工具的缺陷。最初Ant开发者在开发跨平台的应用时,同样也 是基于这些缺陷对Ant做了更好的设计。
二、Ant的优点
三、Ant的基本使用方法
- <?xml version="1.0"?>
- <project name="HelloWorld" default="test" basedir="">
- <target name="test">
- <echo message="test echo messsage, basedir=${basedir}" />
- </target>
- </project>
在命令行下我们进入上面build.xml所在的目录,然后执行ant命令,会出现如下图所示的结果:
- <?xml version="1.0"?>
- <project name="HelloWorld" default="test" basedir="">
- <target name="test-property">
- <property name="name" value="zhangsan" />
- <property name="age" value="25" />
- <echo message="this is target test2." />
- <echo message="java version: ${ant.java.version}" />
- <echo message="project name: ${ant.project.name}" />
- <echo message="ant file: ${ant.file}" />
- <echo message="name = ${name}, age = ${age}" />
- </target>
- </project>
执行ant test-property命令后,结果如下图:
<property>标签用于声明一个属性,其中name为属性名,value为属性值,访问属性值时使用${属性名}。
- <?xml version="1.0"?>
- <project name="HelloWorld" default="test" basedir="">
- <target name="test-copy">
- <copy file="test.txt" tofile="build/test.txt" />
- </target>
- </project>
执行ant test-copy命令后,结果如下图所示:
<copy>标签表示文件或文件夹的拷贝,上面的配置中,file属性表示要拷贝的文件路径,tofile属性表示要拷贝的目的文件路径。如果待拷贝的文件不存在,则命令执行会失败,如果目的文件路径不存在,则命令执行时会自动创建目录。如果是要拷贝整个目录,需要下面的配置:
- <?xml version="1.0"?>
- <project name="HelloWorld" default="test" basedir="">
- <target name="test-copy-dir">
- <copy todir="build/dest_dir">
- <fileset dir="origin_dir" />
- </copy>
- </target>
- </project>
执行ant test-copy-dir命令后,结果如下图所示:
- <?xml version="1.0"?>
- <project name="HelloWorld" default="test" basedir="">
- <!-- 删除单个文件 -->
- <target name="test-del-file">
- <delete file="test.txt" />
- </target>
- <!-- 删除整个目录 -->
- <target name="test-del-dir">
- <delete dir="origin_dir" />
- </target>
- </project>
执行ant test-del-file和ant test-del-dir命令后,结果如下图所示:
<mkdir>标签,用于目录的创建:
- <?xml version="1.0"?>
- <project name="HelloWorld" default="test" basedir="">
- <target name="test-mkdir">
- <mkdir dir="test" />
- </target>
- </project>
执行ant test-mkdir命令后,结果如下图:
执行成功后在项目的目录下出现了test目录。
- <?xml version="1.0"?>
- <project name="HelloWorld" default="test" basedir="">
- <target name="test-compile">
- <javac srcdir="src" destdir="build/classes/" />
- </target>
- </project>
srcdir指定了java源文件所在的路径,destdir指定的是编译后的class文件存放的路径,这里做一个简单的测试,我们在src目录下新建一个Test.java文件,内容为如下代码:
- public class Test {
- public static void main(String[] args) {
- System.out.println("HelloWorld!");
- }
- }
然后执行ant test-compile命令,结果如下图:
第一次执行ant test-compile命令时,由于destdir目录不存在,所以编译不成功,在创建了build/classes/目录后再次执行ant test-compile,命令执行成功,并且在build/classes/目录下出现了Test.class文件。
ant能编译java文件,自然也能运行java程序,用法如下:
- <?xml version="1.0"?>
- <project name="HelloWorld" default="test" basedir="">
- <target name="test-run-java">
- <java classname="Test">
- <classpath>
- <pathelement path="build/classes" />
- </classpath>
- </java>
- </target>
- </project>
<java>标签中的classname属性,指定了要执行的main class名,<classpath>标签中的<pathelement>标签,指定了class文件的路径。
可以看到控制台中打印了HelloWorld!,和我们在代码中打印的一样,证明这里执行了java代码。
- <?xml version="1.0"?>
- <project name="add" default="jar">
- <target name="jar">
- <jar destfile="add.jar" basedir="build/classes/">
- <manifest>
- <attribute name="Main-class" value="Add" />
- </manifest>
- </jar>
- </target>
- </project>
<jar>标签中的destfile属性表示要生成的jar文件,basedir指定class文件的路径,<manifest>标签指定了jar包中的MANIFEST.MF文件中的属性,里面配置Main-class,即主class名称为"Add"。
- <?xml version="1.0"?>
- <project name="Test" default="delete-file">
- <!--创建目录-->
- <target name="mkdir">
- <mkdir dir="build/dest" />
- </target>
- <!--拷贝文件-->
- <target name="copy-file" depends="mkdir">
- <copy file="test.txt" tofile="build/dest/test.txt" />
- </target>
- <!--删除文件-->
- <target name="delete-file" depends="copy-file">
- <delete file="test.txt" />
- </target>
- </project>
上面的配置文件中有三个任务,其中copy-file任务和delete-file任务中都含有depends属性,该属性表示执行<target>中的任务时,要依赖depends中指定的任务(depends中指定的任务会先执行),depends属性值就是一个任务名,所以上面的配置文件表示:执行delete-file任务时需要依赖copy-file任务,而执行copy-file任务时需要依赖mkdir任务,<project>标签中的default值为delete-file,则我们执行ant命令时,会找到delete-file任务,但是这个任务又依赖别的任务,则被依赖的任务会先执行,所以上面的配置文件执行的顺序为:mkdir-->copy-file-->delete-file。
转载于:https://www.cnblogs.com/xlhan/p/7145686.html
Apache Ant自动化脚本相关推荐
- Apache Ant入门教程——基础使用教程
Apache Ant的使用--基础使用教程 一.概述 二.优点 三.安装和配置 四.测试ant 五.ant的运行时环境 六.ant命令 七.ant脚本:使用节点.元素和属性.命令指令 一.概述 ant ...
- apache ant
Apache Ant,是一个将软件编译.测试.部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发.由Apache软件基金会所提供. 用户群:大多数的Java设计都被用于管理大量 ...
- apache jmx_用于JMX访问的Apache Ant任务
apache jmx 我想从Ant任务中调用JMX操作. 但是,找到可用的蚂蚁任务库及其用法非常棘手. 因此,让我分享我的经验,使他人更轻松. JMX操作的Ant任务 我决定遵循Tomcat文档,并使 ...
- 用于JMX访问的Apache Ant任务
我想从Ant任务中调用JMX操作. 但是,找到可用的蚂蚁任务库及其用法非常棘手. 因此,让我分享我的经验,使他人更轻松. JMX操作的Ant任务 我决定遵循Tomcat文档并使用与tomcat一起分发 ...
- Apache Ant使用过程的总结
最近频繁的做Web项目的部署,开发机是Windows系统,服务器在RedHat上,多次使用SecureCRT工具后,决定直接使用Ant部署工具做这件事,同时遇到一个问题:Java程序程序中调用Ant ...
- Apache Ant 简介和配置
Apache Ant 简介 Apache Ant是目前事实上的Java应用的标准build脚本工具.使它大受欢迎的一个主要愿意是它的和灵活,允许程序员创建自己的Task来对Ant进行扩展. 本文主要内 ...
- Apache Ant安装及使用
转自:http://guiheji.blog.sohu.com/107658245.html ant是jakarta一个非常好的OpenSource子项目,是基于java的编译工具.下面简单介绍一下在 ...
- 【ant】Apache ant 开发
Apache ant 开发 Ant是Apache软件基金会JAKARTA目录中的一个子项目,它有以下的优点.跨平台性.Ant是纯Java语言编写的,所以具有很好的跨平台性.操作简单.Ant是由一个内置 ...
- linux自动化脚本制作参考文档
linux自动化脚本制作参考文档 一.环境部分 1.0.启动盘制作 前提:1个8G以上的U盘,想要安装的系统ISO镜像 参考连接: 1.windows系统 #打开'运行' => win + r ...
最新文章
- Python编程基础:第三十四节 文件移动Move a File
- 数据中台、标签、数据资产相关的15个名词解释
- java的lr词法编译器_Sample语言编译器(词法分析、正规式、LL、LR、 算符优先)...
- 基于matlab水轮机期刊,基于MATLAB/SIMULINK的水轮机调节系统寻优
- 2015年京东面试题
- 信息收集 ——情报分析
- 帆软日期控件变灰_数据分析插件FineReport中日期控件如何校验JS
- 【leetcode】Majority Element
- 11款免费而强大的PCB设计软件 还用什么AD PADS?
- 优秀的文本对比工具:UltraCompare 21 for Mac
- PNG转ICO-在线转换
- windows7系统的“ .exe”图标显示不正常解决办法
- 使用欧元符号€作为hive表的分割符
- Fragstats计算景观格局指数不出结果和分维数PAFRAC出现N/A的问题
- Microsoft Word 教程「6」,如何在 Word 中插入艺术字?
- CAMP模型——估计资本成本的模型
- ssh no matching host key type found. Their offer: ssh-rsa
- MySQL中文全文检索demoSQL
- yum doesn‘t have enough cached data to continue
- IDEA初次使用的设置流程