Ant:Path-like Structures和References

path,classpath的定义可以使用pathelement, fileset, filelist, dirset,同时还可以使用引用refid.

引用是解决重复配置脚本的方法,如同代码中的常量定义。

 

下面的内容摘自ant1.7.1的中文手册。

Path-like Structures

可以使用“:”和“;”作为 PATH CLASSPATH 引用的分隔符。 Ant 会将分隔符转换成当前操作系统中使用的分隔符。

当需要指定路径一样的结构时,可以使用嵌套元素。可以使用下面的格式:

 

    


      


      


    


 

location 属性表示一个单一的文件或目录的名称,这个名称可以是相对于 project 根目录的相对目录,也可以是文件的绝对路径。路径属性可以使用预定义的路径,在任何情况下,应该优先选择带有 location 属性的多个元素。

为了简单起见, 字节就有 path location 属性,所以:

 

    


      


    


 

可以省略成:

 



 

另外,一个或多个资源收集器可以有嵌套元素(必须由文件 - 类型资源组成)。同时,应该注意的是即使资源收集器使用遇到的顺序进行处理,某些资源手机类型比如 fileset dirset 和文件没有定义顺序。

 

    


      


      


        


      


      


      


        


        


      


      


    


 

上述脚本定义了名称为 ${classpath} 的路径,然后是 lib 目录下的所有 jar 文件, class 目录, app 子目录下的所有 classes 目录,排除路径名称中含有 Test 的目录,以及 FileLIst 的引用。

如果您想将这个路径一样的结构用在许多任务中,可以使用和 target 同级的 元素进行定义,并且通过 id 属性进行引用。

一个 path-like 结构可以包含其他 path-like 结构的引用(路径本身就是一个资源收集器),引用方式是嵌套的 元素。

 

   

     

     

       

     

     

   

 

   

     

     

   

 

上文提到的 的捷径在 元素中仍然有效。例如:

 

    


      




 

可以省略成:
 



 

路径简写

Ant1.6 开始,在属性中加入了路径简写,通过简写可以将路径转换为 OS 中的特定字符串。可以使用表达式 ${toString:pathreference } 引用字符串作为路径参数,这个字符串可以转换为路径参数。例如:

 

  


    


  


  


    


  


 

 

 

引用

任何工程元素可以使用 id 属性赋予一个标识符。大多数情况下,在随后的脚本中,这个元素可以使用指定的 refid 属性被同类元素引用。用这种方式可以方便的复制同样的 XML 片段,例如,多次使用 结构。

例如:

 



  


    


      


        


        


        


      


    


  


 

  


    


      


        


        


        


      


    


  




 

可以简写为:

 



  


    


    


    


  


 

  


    


      


    


  


 

  


    


      


    


  




 

所有使用 PatternSets, FileSets, ZipFileSets path-like 结构嵌套元素的任务都可以使用上例中的方式进行引用。在 task 中使用 refid 属性会有同样的效果(引用一个已经定义的 task ),但用户应该明白这个属性的解析依赖它引用的元素的实现。一些 task (例如 property task )故意的为 refid 设置了不同的含义。

 

 

 

 

你可能感兴趣的:(开发工具相关,ant,path,include,脚本,任务,build)