学ant(2)——path

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

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

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

Xml代码  收藏代码
  1. <path id="id">  
  2.     <pathelement location="location1" />  
  3.     <pathelement location="location2" />  
  4. </path>  


或者 

Xml代码  收藏代码
  1. <path id="id">  
  2.     <pathelement path="location1;location2" />  
  3. </path>  


或者 

Xml代码  收藏代码
  1. <path id="id">  
  2.     <pathelement path="location1:location2" />  
  3. </path>  


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

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

Xml代码  收藏代码
  1. <path id="id" location="location" />  


或者 

Xml代码  收藏代码
  1. <path id="id" path="location1;location2" />  


或者 

Xml代码  收藏代码
  1. <path id="id" path="location1:location2" />  


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

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

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


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

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

Xml代码  收藏代码
  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来实现 

Xml代码  收藏代码
  1. <javac srcdir="src" />  


也可以写成 

Xml代码  收藏代码
  1. <javac>  
  2.     <src dir="src" />  
  3. </javac>  


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

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

posted on 2018-09-06 22:50  卖肾割阑尾  阅读(213)  评论(0编辑  收藏  举报

导航