将属性转换为路径

时间:2012-05-15 12:29:08

标签: ant

我有一个逗号分隔值的属性,例如。 A,B,C

我想打破这一点并创建一个不同文件集的路径;例如

<path id="compile.path">
  <fileset dir="..\a\lib\"/>
  <fileset dir="..\b\lib\"/>
  <fileset dir="..\c\lib\"/>
</path>

这可能吗?我该怎么做?我对蚂蚁不太熟悉。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:0)

您必须使用自定义脚本或非标准Ant任务。请查看this SO answer which explains how to get a substring form a property以帮助您入门。

答案 1 :(得分:0)

编写for循环的另一种方法是,根据分隔符迭代原始属性,并从循环中为每个标记调用目标。

    <foreach list="${property}" delimiter="${line.separator}" target="mytarget" 
param="token" />

然后是被叫目标:

<target name="mytarget">
    <echo>${token}</echo>           
</target>   

答案 2 :(得分:0)

另一种方法是使用ant-contrib

中的PropertySelector
    <property name="package.ABC.name" value="abc pack name" />
    <property name="package.DEF.name" value="def pack name" />
    <property name="package.GHI.name" value="ghi pack name" />
    <property name="package.JKL.name" value="jkl pack name" />

    <propertyselector property="pack.list"
                         delimiter=","
                         match="package\.([^\.]*)\.name"
                         select="\1"
                         casesensitive="false" />               
would yield the results  
ABC,DEF,GHI,JKL