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. C++课程设计,12306模拟写起来就是这么粗暴

    这篇文章很详细,也很多希望可以好好看看!看完C++稳过! 一.12306应该具备那些功能 1.查询(一个月以内的): 1.查车票:出发地+目的地+出发时间->显示经过两站车票信息 (余票,车次信 ...

  2. CodeForces 1058C C. Vasya and Golden Ticket

    C. Vasya and Golden Ticket time limit per test1 second memory limit per test256 megabytes inputstand ...

  3. codeforce 270C Magical Boxes

    C. Magical Boxes Emuskald is a well-known illusionist. One of his trademark tricks involves a set of ...

  4. python-format方法记录

      今天写脚本,遇到了这种情况:需要上一个脚本的回参作为一个路径参数,我用的os.path.join()处理,因为这个路径参数在最后一位,但是没有考虑到如果路径参数在中间的话,这样的拼接就只能把后面的 ...

  5. Java——HTTP超详细总结

    HTTP协议概述 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的 ...

  6. NLP(二十九)一步一步,理解Self-Attention

      本文大部分内容翻译自Illustrated Self-Attention, Step-by-step guide to self-attention with illustrations and ...

  7. 现代企业要求上什么样的MES(四)

    一个制造企业要想盈利,在生产方面要做的无非是提高资源利用效率和缩短生产通过时间(生产周期),而实现这俩步骤需要生产状况的在线透明及避免薄弱环节的分析数据,由此达到改善生产状态的目的.在erp系统中,通 ...

  8. 认识mysql3个基本库

    一.3个基本库 数据库初始化安装完毕会有三个基本库mysql .information_schema.performace_schema.作为应用程序开发者,平时较少关注这些数据库尤其是后两者.但是通 ...

  9. react——key值的理解

    key不是给开发者使用的,是给react在diff算法中使用的,diff算法会比较新旧虚拟dom,并且是同层比较,当同一层中有多个元素的时候,会比较这一层的key值, 如果key相同,属性改变积极更新 ...

  10. Mybatis 分页:Pagehelper + 拦截器实现

    一.分页插件 Pagehelper PageHelper是Mybatis的一个分页插件,非常好用! 1.1 Spring Boot 依赖 <!-- pagehelper 分页插件--> & ...