Ant类型之ResourceCollections

        Ant中包含以下内置资源集合类型:

  •         resources:通用资源集合。可以收集未知的类型的资源集合,还可以做为其他资源集合的容器,。具有以下属性:
                    cache:ant1.8引入,是否缓存结果,默认为false。
  •         files:一组文件,这些文件与许多模式集的绝对模式相匹配。模式集可以通过嵌套patternset元素指定,此外,还支持直接嵌套模式集元素include、includesfile、exclude、excludesfile以及patternset的属性。文件选择器可作为嵌套元素,一个文件被所有的选择器选中才会被包含在内。具有以下属性:
                    includes:逗号或空格分隔的必须包含的文件模式列表。
                    includesfile:文件名。指定文件的每一行都会做为一个includes模式。
                    excludes:逗号或空格分隔的必须排除的文件模式列表。
                    excludesfile:文件名。指定文件的每一行都会做为一个excludes模式。
                    defaultexcludes:是否使用默认排除列表,默认为true。
                    casesensitive:处理includes与excludes模式时是否区分大小写,默认为true。
                    followsymlinks:是否跟踪符号链接,默认为true。
  •         restrict:使用资源选择器限制嵌套的资源集合。具有以下属性:
                    cache:是否缓存结果,默认为true。
  •         sort:对嵌套的资源按自然顺序或者一到多个资源比较器进行排序,具有以下属性:
                    cache:是否缓存结果,默认为true。
  •         first:包含嵌套资源集合的前count个资源,通常与sort联合使用来从一个较大的资源集合中选择前几个资源,具有以下属性:
                    count:包含的资源数量,默认为1。
                    cache:是否缓存结果,默认为true。
  •         last:ant1.7.1引入,包含嵌套资源集合的最后count个资源,通常与sort联合使用来从一个较大的资源集合中选择最后几个资源,具有以下属性:
                    count:包含的资源数量,默认为1。
                    cache:是否缓存结果,默认为true。
  •         tokens:从嵌套的资源集合收集字符串。使用TokenFilter支持的相同分词器,tokens中必须包含一个资源集合,并且指定一个嵌套的分词器,默认为LineTokenizer,具有以下属性:
                    encoding:嵌套资源的编码,默认与平台相同。
                    cache:是否缓存结果,默认为true。
  •         union:嵌套的资源集合的并集,会对集合中的资源去重。具有以下属性:
                    cache:是否缓存结果,默认为true。
  •         intersect:嵌套的资源集合的交集。具有以下属性:
                    cache:是否缓存结果,默认为true。
  •         difference:嵌套资源的差异部分。具有以下属性:
                    cache:是否缓存结果,默认为true。
  •         mappedresources:ant1.8引入,包装另一个资源集合,并且使用mapper映射嵌套资源的名字。mappedresources中必须包含一个资源集合和一个用来映射名字的映射器,如果没有指定映射器,默认使用identity映射器,mappedresources具有以下属性:
                    cache:ant1.8.1起,是否缓存结果,默认为false。
                    enablemultiplemappings:ant1.8.1起,集合对于给定的源路径是否使用所有的映射器,默认为false。
  •         archives:ant1.8引入,接受任意数量的嵌套资源,这些资源会作为zip或tar的存档,archives返回的是嵌套的存档的内容。archives是只仅由zip系列任务支持的zipgroupfileset的泛化。archives不支持任何属性。archives有两个内嵌元素zips和tars。
  •         resourcelist:ant1.8引入。接受任意数量的嵌套资源,读取这些资源,并为读取的每一行返回一个资源。如果该行包含冒号,ant会将其作为url,如果失败或者不包含冒号,则以该行内容做为资源的名称返回。如果属性扩展产生一个资源对象而不是字符串,将直接返回资源。resourcelist是filelist的泛化。resourcelist支持嵌套filterchain元素,可以在行扩展之前过滤或这修改资源。resourcelist具有以下属性:
                    encoding:嵌套资源的编码,默认与平台相同。

简单示例

<project xmlns:rsel="antlib:org.apache.tools.ant.types.resources.selectors" 
		 xmlns:rcmp="antlib:org.apache.tools.ant.types.resources.comparators">
	
	<files includes="C:\Users\runner\task\condition\*.xml" />
	<restrict id="files">
		<fileset dir="../../task" includes="**/**" />
		<name regex="(.*)\.xml" />
		<not>
		<name regex="(.*)d\.xml" />
		</not>
		<compare when="lt" against="each">
			<control>
				<files includes="C:\Users\runner\task\concat\*.xml,C:\Users\runner\task\echoproperties\build.xml" />
			</control>
			<size />
		</compare>
	</restrict>
	<sort id="sortedfiles">
		<resources refid="files"/>
		<size/>
	</sort>
	<first id="firstfiles" count="2">
		<resources refid="sortedfiles"/>
	</first>
	<last id="lastfiles" count="2">
		<resources refid="sortedfiles"/>
	</last>
	
	<tokens id="tokens">
	  <string value="this is a string" />
	  <stringtokenizer />
	</tokens>
	
	<resources id="A">
        <string value="a"/>
        <string value="b"/>
    </resources>
    <resources id="B">
        <string value="b"/>
        <string value="c"/>
    </resources>
    <union id="union">
		<resources refid="A"/>
		<resources refid="B"/>
	</union>
    <intersect id="intersect">
		<resources refid="A"/>
		<resources refid="B"/>
	</intersect>
    <difference id="difference">
		<resources refid="A"/>
		<resources refid="B"/>
	</difference>
	<copy todir="mapped">
	<mappedresources id="mapped" enablemultiplemappings="false">
        <resources refid="files"/>
        <globmapper from="*" to="*.bak"/>
	</mappedresources>
	</copy>
	<copy todir="archives">
		<archives>
			<zips>
				<restrict>
					<path path="${java.class.path}"/>
					<name name="trans.jar"/>
				</restrict>
			</zips>
		</archives>
	</copy>
</project>







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值