Ant学习笔记

前言:这段时间在学习Ant,发现这是一个很强大的构建工具。你可能使用了很长一段时间,才发现Ant能做数不完的事。总之,个人觉得,Ant学习门槛低,入门简单,能大概看懂程序,写一些简单的脚本即可,剩下在遇到的时候边做边学就可以了。另外,博主资历尚浅,有说的不对的地方,还请大家不吝指教。

1、Ant是一个Apache基金会下的跨平台的构建工具,它可以实现项目的自动构建和部署等功能。它具有跨平台、使用简单、语法清晰、功能强大等特点

2、下载和安装:http://ant.apache.org/,添加环境变量ANT_HOME,指向根目录D:\hybirs630\hybris\bin\platform\apache-ant-1.9.1、安装完成后,进入控制台界面,输入 ant -version检查是否安装成功。

3、Ant的构建文件是通过XML编写的,默认名称是build.xml.

<?xml version="1.0"?>
<project name="helloWorld">
       <target name="sayHelloWorld">
              <echo message="Hello,Amigo"/>
       </target>
</project>

备注:(在文件的存在目录执行ant sayHelloWorld, ant 默认寻找文件build.xml,若文件不为build.xml,则执行ant –f hello.xml sayHelloWorld、ant –buildfile hello.xml sayHelloWorld或ant –file hello.xml sayHelloWorld)

4、Ant的关键元素project、target、property、task

1、project元素(至少包含一个,可以包含多个target)  、 name属性、 default属性(用于指定project默认执行时所执行的target的名称)、basedir属性(用于指定路径的位置。没有指定,使用Ant的构件文件的附目录作为基准目录)

<?xml version="1.0"?>
<project name="projectStudy" default="sayBaseDir" basedir="D:\hybirs630\hybris\bin\platform\apache-ant-1.9.1">
       <target name="sayBaseDir">
              <echo message="The base dir is: ${basedir}"/>
       </target>
</project>

2、ant -projecthelp(列出当前ant可执行的所有命令)

3、target元素(是Ant的基本执行单元,它可以包含一个或多个具体的任务,多个target可以存在相互依赖关系)、name属性(指定名称)、depends属性(描述target之间的依赖关系,以,间隔,顺序执行,被依赖的target优先执行)、if/unless属性(验证属性是否存在,若存在,则执行/不执行)、description属性(target功能的简短描述与说明)

<?xml version="1.0"?>
<project name="targetStudy">
       <target name="targetA" if="ant.java.version">
              <echo message="Java Version: ${ant.java.version}"/>
       </target>
       <target name="targetB" depends="targetA" unless="amigo">
              <description>
                            a depend example!
              </description>
              <echo message="The base dir is: ${basedir}"/>
       </target>
</project>

4、property元素(参量或者参数的定义),若要在外部引入某文件,例如build.properties文件,可以通过如下内容将其引入:<property file=” build.properties”/>

同时,Ant还提供了一些它自己的内置属性,如下:

basedir:project基目录的绝对路径.

ant.file:buildfile的绝对路径,如上面的各例子中,ant.file的值为E:"build.xml;

ant.version:Ant的版本,在本文中,值为1.7.0;

ant.project.name:当前指定的project的名字,即前文说到的project的name属性的值;

ant.java.version:Ant检测到的JDK的版本。

备注:ant中若引用property或者它的内置属性,用${}括号起来引用。

<?xml version="1.0"?>
<project name="propertyStudy" default="example">
  <property name="name" value="amigo"/>
  <!--读取属性文件的属性配置-->
  <property file="foo.properties"/>
  <property name="age" value="25"/>
   <target name="example">
        <echo message="name: ${name}, age: ${age}"/>
   </target>
</project>

5、Ant的任务介绍

1、输出信息

<echo message="xxx"/>
<echo>yyyy</echo>     

2、copy任务

该任务主要用来对文件和目录的复制功能。举例如下:

Eg1.复制单个文件:<copy file="file.txt" tofile="copy.txt"/>

 Eg2.对文件目录进行复制:

<copy todir="../newdir/dest_dir">

<fileset dir="src_dir"/>

</copy>

Eg3. 将文件复制到另外的目录:

<copy file="file.txt" todir="../other/dir"/>

<copyfile src="test.java" dest="subdir/test.java">

dest:代表目标目录

Eg4.拷贝一堆文件到一个目录

<copy todir="../dest/dir">

<fileset dir="src_dir">

<exclude name="**/*.java">

</fileset>

</copy>

Eg5.拷贝一个目录下的东西到另一个目录下(includes加入,excludes排除,即排除这些之外的东西都要加入)

<copy src="${src}/resources" dest="${dist}" includes="**/*.java" excludes="**/Test.java"/>

2、delete任务

对文件或目录进行删除,举例如下:

Eg1. 删除某个文件:<delete file="photo/amigo.jpg"/>

Eg2. 删除某个目录:<delete dir="photo"/>

Eg3. 删除所有的备份目录或空目录:(也可以使用include和exclude)

<delete includeEmptyDirs="true">

<fileset dir="." includes="**/*.bak"/>

</delete>

3.       mkdir任务

创建目录。eg:<mkdir dir="build"/>

4、move任务

移动文件或目录,举例如下:

Eg1. 移动单个文件:<move file="fromfile" tofile=”tofile”/>

Eg2. 移动单个文件到另一个目录:<move file="fromfile" todir=”movedir”/>

Eg3. 移动某个目录到另一个目录:

<move todir="newdir">

<fileset dir="olddir"/>

</move>

5、重命名任务

<rename src="foo.jar" dest="ant-${version}.jar"/>

6、Touch的使用

如果文件不存在,创建文件,如果存在,更改最后访问时间为系统时间

<touch file="myfile"/>

7、打Jar包

<target name="build" depends="compile">

<jar destfile="${hello_jar}" basedir="${dest}"/>

</target>

8、压缩zip文件

<zip destfmlile="${dist}/manual.zip"

basedir="htdocs/manual"

includes="api/**/*.html"

excludes="**/todo.html"/>

6、利用Ant构建和部署Java工程

参考我的另一篇博客:http://www.cnblogs.com/jmcui/p/6946777.html

7、一份Ant的API文档:http://files.cnblogs.com/files/jmcui/ant%E4%BD%BF%E7%94%A8%E5%B8%AE%E5%8A%A9%E6%89%8B%E5%86%8C_%E4%B8%AD%E6%96%87.pdf

时间: 2024-10-08 17:01:49

Ant学习笔记的相关文章

ant 学习笔记

ant构建文件时基于xml文件编写的,默认名称为build.xml bulid.xml示例 <?xml version="1.0"?> <project name="helloWorld" default="copy"  > <target name="copy"  description="copy"> <copy todir="D:\AntTest&q

Apache Ant学习笔记(3):在eclipse中使用Apache Ant

在eclipse中使用Apache Ant是很简单的,因为eclipse本身就集成了Apache Ant.以下是一个Hello World. 1.创建一个工程test,如下: 2.在工程根目录之下创建一个build.xml文件,eclipse将自动识别并将它标记为Apache Ant的构建文件,如下: 3.打开build.xml,这时文件中没有内容,需要根据自己的需求编写构建文件 4.编写构建文件,简要编写如下: 5.打开Outline视图,在此视图中显示了build.xml文件的元素结构,可见

Apache Ant学习笔记(2):Apache Ant命令行

Apache Ant的命令行是Apache Ant构建的基础.虽然我们通常在IDE中集成Apache Ant并使用它进行构建,但是了解Apache Ant的命令行对我们在IDE中使用Apache Ant还是很有好处的,如对IDE中Apache Ant的默认设置进行修改以符合自己的要求.此外,还是有用到命令行的场景,虽然很少. 进入命令行,输入ant -help,显示如下(括弧中的文字是选项的注释): ant [options] [target [target2 [target3] ...]] O

Apache Ant学习笔记(1):了解Ant

1.软件构建 软件构建是将程序的源文件转换成可以直接使用的应用程序或应用程序组件的过程.软件构建过程涉及到一些我们很熟悉的操作如文件/文件夹操作.编译.测试.打包.部署.发布等. 以下描述一个简单的软件构建过程:首先会创建一系列文件夹来存放一系列的源文件和资源文件等文件:在源文件编写完成之后,对它进行编译(出错的情况下还会进行调试).测试(单元测试):在程序的所有源文件都编写完成之后,对所有源文件进行测试:测试完成之后,在没有发现错误的情况下,将编译生成的目标文件和相关的资源文件进行打包生成打包

maven权威指南学习笔记(三)&mdash;&mdash;一个简单的maven项目

目标: 对构建生命周期 (build  lifecycle),Maven仓库 (repositories),依赖管理 (dependency management)和项目对象模型 (Project Object Model)有一个基本的理解 目前不准备深入学习maven故此使用工具ideaj 来帮助学习, 用idea创建一个默认的maven工程,结构如下: 相关命令: 打包:mvn package 编译:mvn compile 编译测试程序:mvn test-compile 清空:mvn cle

《Spring3.X企业应用开发实战》学习笔记--SpringMVC

本篇是<Spring3.X企业应用开发实战>,陈雄华 林开雄著,电子工业出版社,2012.2出版"的学习笔记的第三篇,关于SpringMVC. Spring MVC 3.0和早期版本相比拥有了一个质的飞跃,全面支持REST风格的WEB编程.完全注解驱动.处理方法签名非常灵活.处理方法不依赖于Servlet API等. 由于Spring MVC框架在后头做了非常多的隐性工作,所以想深入掌握Spring MVC 3.0并非易事,本章我们在学习Spring MVC的各项功能时,还深入其内部

【点击模型学习笔记】Ad centric model discovery for redicting ads&#39; click through rate_ANT2013_Tencent

腾讯soso的人写的一篇文章,介绍soso广告系统的ctr预估技术.2013年的,应该反映了当前soso的ctr预估系统的情况. ANT会议质量一般,elsevier出版社出版.搞笑的是,文章摘要居然把论文模板上的这句话"Click here and insert your abstract text"原封不动的写在了第一句,并且就这样发表了! 主要内容: 描述soso搜索结果页面中广告点击率预测的系统实现. 具体内容: 1. 相关工作 Rechardson用逻辑回归来预测ctr ki

学习笔记——Maven settings.xml 配置详解

文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${user.home} 和和所有其他系统属性只能在3.0+版本上使用.请注意windows和Linux使用变量的区别. settings.xml详解 声明规范 <?xml version="1.0" encoding="UTF-8"?> <settings x

MyBatis MapperScannerConfigurer配置――MyBatis学习笔记之八

MyBatis MapperScannerConfigurer配置——MyBatis学习笔记之八 2012-09-02 20:01:42 标签:Spring MyBatis MapperScannerConfigurer bean默认命名 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://legend2011.blog.51cto.com/3018495/980150 在上一篇博文的示例中,我们在beans.xml中配置了stu