2010-04-12 50 views
2

我从属性文件中获取属性与蚂蚁有问题。在我的build.xml中有这样一个简单的目标,我想至少得到两个属性path1和path2。我想有一个通用的目标来获得这两个属性....为了避免修改build.xml(只是添加一个新的道具)是否存在递归Ant任务来从外部文件恢复属性?

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

的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 
+0

你要遍历路径[我] .prop,其中i是在[1..1]? – stacker 2010-04-12 19:01:03

+0

就是这样。我正在寻找一个简单的问题。 我想过使用JavaScript,但因为我不是一个蚂蚁大师用户,我认为有一种简单的方法可以用蚂蚁做到这一点。 谢谢 – Julia2020 2010-04-12 19:12:05

+0

如果它有效,你应该接受答案或至少给一个upvote ;-) – stacker 2010-04-13 19:14:05

回答

0

你可以写你的路径设置到一个逗号分隔的列表在一个单一的属性,并使用一个foreach loop

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>