Ant的一些核心概念:

build.xml:构建文件是以XML 文件来描述的,默认构建文件名为build.xml。
        project:每个构建文件包含一个工程。

property:属性,一个property 有一个名称和一个值,Property 可以用于task 的属性值,通过${}来调用,类似于EL表达式。

depends:每个工程包含若干个目标(target),目标可以依赖于其他的目标。

task:目标包含一个或多个任务(task),一个task 是一段可执行的代码,"javac"就是一个典型的task。

下面是Ant一些常用标签的介绍,我用实例来讲解一下会更生动些:

 1.<project>

每个构建文件都对应于一个项目,必须包含一个<project>元素,但是大型项目经常包含大量的子项目,每一个子项目都可以有自己的构建文件。

2.<target>

一个项目标签下可以有一个或多个target标签,target标签可以依赖于其他的target标签。例如,有一个target用于编译程序,另一个target用于生成可执行文件。在生成可执行文件之前必须先编译该文件,因此可执行文件的target依赖于编译程序的target。

Ant的depends属性指定了target的执行顺序,Ant会依照depends属性中target出现顺序依次执行每个target。在执行之前,首先需要执行它所依赖的target。一个target只能被执行一次,即使有多个target依赖于它。if或unless属性用来判断是否执行该target。

3.<property>

property标签可以帮助我们设置一些经常用到的属性,类似于Java中的变量,这样我们可以在多个task中方便调用,下面是一个引用属性文件的实例。

假设项目根目录存在build.properties 属性文件,用于保存公共的属性,其内容为:

  1. src = src
  2. dest = classes

然后在build.xml 中引用此属性文件:

我们可以通过<echo>${dest}</echo>输出相应信息测试是否载入成功。

 4.文件相关

(1)<mkdir>
        该标签用于创建一个目录,它有一个属性dir用来指定所创建的目录名

创建了一个目录,${dir}是前面已经声明的property属性

(2)<tempfile>
        建立一个文件名称为temp.bak,后缀为.bak 的文件

(3)<rename>
        重命名文件/文件夹

将hello.jar重命名为helloAnt.jar

(4)<move>
        移动文件/文件夹

将${dest}目录下所有class文件移动到bin目录下,排除"_temp"结尾的class文件。

(5)<copy>
        复制文件/文件夹

将file1复制为file2

将file复制到dir中

将src下的java文件复制到src2目录下,同时排除"_temp"结尾的java文件,两种写法均可。

复制文件和文件夹,跟上面的功能是一样的。

通常情况下,svn 文件默认是 excludes 的,所以这里要设置一下

删除src目录树,即所有子文件夹内容

       (6)<delete>
        删除一个文件或一组文件

删除file1文件

删除dir1目录

删除dir1下所有bak文件

删除dir1下所有文件

(7)<touch>
        主要是用于修改最后修改时间

如果文件不存在,先创建文件,更改最后修改时间为当前系统时间

如果文件不存在,先创建文件,更改最后修改时间为11/11/2011 11:11 pm

更改文件夹最后修改时间,文件夹需存在

5.输出信息

(1)<echo>
        用于打印/输出信息,类似于log4j的info方法。

以上四种方式均可以显示相应信息

将"hello Ant!"写入test.txt文件中

将"<test></test>"这段xml代码写入test.xml文件中

将所有"java."开头的属性写入到test.properties属性文件中

        (2)<fail>
        用于显示错误信息,类似于log4j的error方法。

与echo类似,fail提供四种基本的错误输出方式,当然fail也可以加入类似if,unless等业务逻辑进行判断是否显示。

      

 6.流程,判断

        (1)<condition>
        包括<and>,<or>,<not>等标签。
        (2)<available>
        available 主要用于判断某个文件是否存在,并设置相应属性值。
        1)如果类存在,则设置属性classExisted 为true。

2)如果文件存在则设置属性myJar 为true。

        3)如果目录存在,则设置属性为true。

4)如果在classpath 下发现文件则设置属性为true

        (3)if ... else

 7.其他标签

        (1)<classPath>和<path>
        比较好理解,设置classPath,引用path内容。
        (2)<replace>
        替换指定内容,value1替换成value2。
        (3)<exec>
        执行系统程序,例如:cmd,svn,cvs等等。
        (4)执行SQL
<sql driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" userid="root" password="123456" encoding="utf-8" src="user.sql" >
<classpath refid="classpath" />
insert into user values(xxx,xxx,xxx,xxx);
</sql>
 

既可以在sql标签内容声明SQL语句,也可以通过src加载sql文件。

 
        (5)发送电子邮件
        不得不佩服Ant功能的强大,居然连电子邮件功能都集成了,这样在部署或部署失败之后可以向指定地址报告结果。
        (6)载入其他构件文件

调用指定文件中的制定target:

        (7)压缩,解压缩
        压缩,解压缩包括jar,war,ear,zip,tar等等常见压缩包格式。
        zip压缩:
        zip解压缩:

upnzip也可以解压缩war包。

        tar压缩:
        tar解压缩:
        EAR压缩:
        全称是EnterpriseArchiveFile,为J2EE应用程序创建的JAR文件是EAR文件(企业JAR文件)。
        包含内容:Servlet、JSP页面、JSP标记库、JAR库文件、HTML/XML文档和其他公用资源文件,如图片、音频文件等;除了包含JAR、WAR以外,还包括EJB组件.
        (8)获取当前时间:

类似于Java的用法,这里我就不讲了。

Ant标签详解--基础操作的更多相关文章

  1. ant 标签详解

    Ant 开发 Ant的构建文件当开始一个新的项目时,首先应该编写Ant构建文件.构建文件定义了构建过程,并被团队开发中每个人使用.Ant构建文件默认命名为build.xml,也可以取其他的名字.只不过 ...

  2. 转:springmvc常用注解标签详解

    Spring5:@Autowired注解.@Resource注解和@Service注解 - IT·达人 - 博客园--这篇顺序渐进,讲得超级好--此人博客很不错http://www.cnblogs.c ...

  3. 引用 struts2标签详解 - wo的的日志 - 网易博客

    引用 元元 的 struts2标签详解   引用 COLD 的 struts2标签详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@t ...

  4. html标签详解(2)

    http标签详解 声明 1:这里的文字都是我从我自己csdn账号拷贝过来,是本人学习总结的结晶,所以请尊重本作品.2:如要要转载本文章,则要说明文字的出处.3:如有哪里不对欢迎指出. 在上一篇文章中主 ...

  5. html标签详解(1)

     http标签详解及讲解        1.基础标签 <!DOCTYPE html> <!--表示文本类型--> <html> <!--<html> ...

  6. Mybatis批量insert 返回主键值和foreach标签详解

    Mybatis批量insert 返回主键 Mybatis从3.3.1版本开始,支持批量插入后返回主键ID.首先对于支持自增主键的数据库使用useGenerateKeys和keyProperty,对于不 ...

  7. 【转载】html中object标签详解

    [转载自http://blog.csdn.net/soliy/archive/2010/03/22/5404183.aspx] html标签之Object标签详解 作者:网络    出处:网络     ...

  8. ant 入门级详解

    ant 入门级详解   [转载的地址(也是转载,未找到原文地址)]https://www.cnblogs.com/jsfx/p/6233645.html 1,什么是antant是构建工具2,什么是构建 ...

  9. Meta标签详解(HTML JAVASCRIPT)

    Meta标签详解,在网上转的,希望对大家有用 您的个人网站即使做得再精彩,在“浩瀚如海”的网络空间中,也如一叶扁舟不易为人发现,如何推广 个人网站,人们首先想到的方法无外乎以下几种: ● 在搜索引擎中 ...

随机推荐

  1. 【mybatis xml】数据层框架应用--Mybatis(三)关系映射之一对一关系映射

    实际的开发中,对数据库的操作常常会涉及到多张表,这在面向对象中就涉及到了对象与对象之间的关联关系. 针对多表之间的操作,MyBatis提供了关联映射,通过关联映射就可以很好的处理对象与对象之间的关联关 ...

  2. 自定义Element父子不关联的穿梭树

    Element自身是有一个Transfer穿梭框组件的,这个组件是穿梭框结合checkbox复选框来实现的,功能比较单一,自己想实现这个功能也是很简单的,只是在项目开发中,项目排期紧,没有闲功夫来实现 ...

  3. 猫狗大战("简单的二维背包")

    题面:https://www.luogu.com.cn/problem/P1489 看上去是一道简单的二维费用背包,但是要特别小心循环顺序. Ⅰ先循环物品,再循环限制条件. Ⅱ每一个限制条件都必须从后 ...

  4. Educational Codeforces Round 77 (Rated for Div. 2) C. Infinite Fence

    C. Infinite Fence 题目大意:给板子涂色,首先板子是顺序的,然后可以涂两种颜色,如果是r的倍数涂成红色,是b的倍数涂成蓝色, 连续的k个相同的颜色则不能完成任务,能完成任务则输出OBE ...

  5. vue项目兼容ie

    一.兼容ES6 Vue 的核心框架 vuejs 本身,以及官方核心插件(VueRouter.Vuex等)均可以在 ie9 上正常使用.但ie不兼容es6,所以需要安装插件将“Promise”等高级语法 ...

  6. CC2530定时器

    一.定时/技术器的基本原理 定时/计数器,是一种能够对内部时钟信号或外部输入信号进行计数,当计数值达到设定要求时,向CPU提出中断处理请求,从而实现定时或者计数功能的外设.         定时/计数 ...

  7. Mysql常用sql语句(14)- 多表查询

    测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...

  8. iview tree 绑定数据

    官方文档 :https://www.iviewui.com/components/tree 效果图 1 主体分析 <Tree ref="tree" :data="t ...

  9. 移动端APP自动化测试超全基础汇总

    目录 一.面试过程 1.自动化岗位要求 2.面试流程,面试类型 3.沟通技巧,不同级别要求 二.真实面试案例 1.一个输入框的面试题(有人拿到高级岗位,有人连初级都没拿到,为什么) 三.自我分析 1. ...

  10. Xshell 与 Xftp 的安装与使用

    我们在日常工作中,不管是系统管理员.程序员.还是技术工程师,如果想登陆到 Linux 服务器,不可能总是跑到机房去工作,通常我们需要一个工具帮我们去做远程连接,这样我们只需要用笔记本电脑就可以连接到服 ...