是否存在从外部文件恢复属性的递归Ant任务?

时间:2010-04-12 18:52:48

标签: java svn ant

我在使用属性文件中的ant获取属性时出现问题。在我的build.xml中使用这样的简单目标,我想获得至少两个属性path1和path2。我希望有一个通用目标来获取这两个属性....以避免修改build.xml(只是添加一个新的prop)

有什么建议吗?提前致谢 !

build.xml:

<target name="TEST" description="test ant">
    <property file="dependencies.properties"/>  
    <svn>  
        <export srcUrl="${path.prop}" destPath="${workspace}/rep/" />  
    </svn>  
</target>  

dependencies.properties:

path1.prop = /path/to/src1
path2.prop = /path/to/src2

2 个答案:

答案 0 :(得分:1)

谢谢,它有效。 此外,您可以使用ant-contrib中的propertycopy从文件中获取其他属性。

dependencies.list=path1,path2
path1.prop1=val1
path1.prop2=val2
path2.prop1=val3
path2.prop2=val4
像这样:

<target name="main">
    <property file="dependencies.properties"/>
    <foreach list="${dependencies.list}" delimiter="," param="name" target="doExtract" inheritall="true"/>
</target>

<target name="doExtract">
    <propertycopy name="prop1" from="${name}.prop1" silent="true"/>
    <propertycopy name="prop2" from="${name}.prop2" silent="true"/>
    <svn>
        <export srcUrl="${prop1}" destPath="${workspace}/rep/"" />
    </svn>
</target>

答案 1 :(得分:0)

您可以将路径设置写入单个属性中以逗号分隔的列表,并使用foreach loop