1、path是ant内置的一种datatype,作用是声明路径之类的东西,在官方的manual中也叫做Path-like Structures,一般是这样声明的

<pathelement location="location1" />  pathelement 包含一个或多个文件

<classpath>
<pathelement location="./lib/test.jar"/>
<pathelement location="."/>
</classpath>

  1. <path id="id">
  2. <pathelement location="location1" />
  3. <pathelement location="location2" />
  4. </path>

或者

  1. <path id="id">
  2. <pathelement path="location1;location2" />
  3. </path>

或者

  1. <path id="id">
  2. <pathelement path="location1:location2" />
  3. </path>

声明path的时候,可以用内嵌的<pathelement>元素,来指定若干个位置。<pathelement>元素常用的属性有2个,location可以声明一个路径,path可以声明多个路径,其中用;或者:来分隔 

2、不过简单的情况下,一般不这么写,而是用替代方式

  1. <path id="id" location="location" />

或者

  1. <path id="id" path="location1;location2" />

或者

  1. <path id="id" path="location1:location2" />

很容易看出来,这种形式是第一种的简化写法,效果是一样的 

但是有些时候比较复杂,也就需要用到<pathelement>元素了,比如ant自带的build.xml中

  1. <path id="classpath">
  2. <fileset dir="lib/optional" includes="*.jar"/>
  3. </path>
  4. <path id="tests-classpath">
  5. <pathelement location="${build.classes}"/>
  6. <path refid="classpath"/>
  7. </path>

这个例子里,tests-classpath需要组合2个path,所以就不能使用上面说的简化方式了,这里就用到了<pathelement>元素 

3、<path>中可以带一个<fileset>,这种写法也是很常见的,比如说:

  1. <path id="classpath">
  2. <fileset dir="${lib.dir}">
  3. <include name="**/*.jar" />
  4. </fileset>
  5. </path>

4、path的使用方式有2种 

第一种是用id声明,然后用refid来引用 
第二种是直接内联 

这2种方式在上面的2里都有例子 

5、build.xml本身是基于xml的,很多元素的写法都可以用属性或者子元素2选1来实现

  1. <javac srcdir="src" />

也可以写成

  1. <javac>
  2. <src dir="src" />
  3. </javac>

效果是一样,其他类似这样的情况还有很多,看多了就习惯了 

6、关于<path>和<fileset>的区别,<path>元素期待看到的是一个路径,而<fileset>期待看到的是一个文件集合,从这个角度来理解就可以了

学ant(2)——path的更多相关文章

  1. Ant高级-path和fileset

    一 <path/> 和 <classpath/> 你可以用":"和";"作为分隔符,指定类似PATH和CLASSPATH的引用.Ant会 ...

  2. 关于 ant 不同渠道自动打包的笔记

    必要的java.android.ant文件及循环打包用到的ant的jar 下载Ant(这里的Ant不是eclipse和android SDk里面自带的ant)      官方下载地址:http://a ...

  3. Ant自动编译打包&发布 android项目

    Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. ...

  4. 基于ant的jmeter自动化性能测试

    准备工作: 1.java的运行环境正常,及运行java -version.javac -version能正常输出java版本: 2.ant的运行环境正常,使用ant需要配置环境变量,编辑/etc/pr ...

  5. Mac osx 下配置ANT

    一般安装过程如下: 1:sudo sh (会提示你输入当前用户的密码) 2:cp apache-ant.1.8.2-bin.zip /usr/local 3:cd /usr/local 4:unzip ...

  6. 写个自动下载安装Ant的shell脚本【二】

    #!/bin/bash ####################################################### file name: install_ant.sh# # fun ...

  7. 写个自动下载安装Ant的shell脚本【一】

    #!/bin/bash ###################################################### # file name: install_ant.sh # # f ...

  8. CentOS5.5下安装Ant

    从yum源直接下ant: [root@master local]$ yum install ant 运行ant,发现报错: java.lang.NoClassDefFoundError: org/ap ...

  9. Ant命令行操作

    Ant命令行操作 Ant构建文件可以将项目编译,打包,測试,它是Apache软件基金会jakarta文件夹中的一个子项目,具有跨平台性,操作简单,并且非常easy上手. 关于Ant执行,能够在项目中找 ...

随机推荐

  1. Ubuntu18.04 安装opensips,实现局域网内sip语音视频通话

    Ubuntu18.04直接安装opensips 本人实践亲测有效,用docker安装opensips尝试多次均无法连接mysql数据库,故舍弃,直接在主机上安装opensips 部分内容参考自:htt ...

  2. 给你的Mac 整个好用的命令行iTerm2 + zsh + oh-my-zsh + powerlevel10k

    给你的Mac 整个好用的命令行iTerm2 + zsh + oh-my-zsh + powerlevel10k 介绍 iTerm2 是一个MacOS 下的终端模拟器,和其他的终端本质上没啥大不同.但相 ...

  3. ecshop二次开发笔记--订单表结构ecs_order_info说明

    -- 表的结构 `ecs_order_info`  CREATE TABLE IF NOT EXISTS `ecs_order_info` (  `order_id` mediumint(8) uns ...

  4. 为什么要学习Netty?

    一.传统的BIO编程 ​ 网络编程的基本模型是 Client/Server 模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的 IP 地址和监听端口),客户端通过连接操作向服务端监听 ...

  5. python框架之Flask

    介绍:Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . WSGl:Web Server Gateway ...

  6. 构建前端第2篇之--ESLint 配置

    张艳涛 写于2021-1-19 报错: http://eslint.org/docs/rules/space-before-function-paren Missing space before fu ...

  7. #使用C#winform编写渗透测试工具--子域名挖掘

    使用C#winform编写渗透测试工具--子域名挖掘 这篇文章主要介绍使用C#winform编写渗透测试工具--子域名挖掘.在渗透测试中,子域名的收集十分重要,通常一个网站的主站的防御能力特别强,而他 ...

  8. 关于C语言中对数字的扩展和缩短

    关于对数字的扩展:如果需要在不改变他的类型的情况下去扩展一个数字 有符号数字: 如果最高位为0---向左按位复制0 如果最高位为1---向左按位复制1 无符号数字:向左按位复制0即可 对于数字的缩短: ...

  9. noip模拟测试30

    考试总结:这次考试,不是很顺利,首先看了一眼题目,觉得先做T1,想了一会觉得没什么好思路,就去打暴力,结果我不会枚举子集,码了半天发现不对,就随便交了一份代码上去,结果CE了,然后去打T3,20min ...

  10. linux对拍

    转自 hzoi-fengwu :https://www.cnblogs.com/hzoi-fengwu/p/14872962.html 1 #include<bits/stdc++.h> ...