我有一个场景,使用ANT Script
我必须使用属性文件从 SVN 获取代码。
属性文件具有属性projectlib
,其中模块中使用的库以逗号分隔值列出,其对应的修订号列在下面的属性projectlib.revision
中。
我必须使用相应的修订号来获取projectlib。
属性文件如下所示:
projectliblist=XXXXLib1,XXXXLib2
projectlibrevision=3195,3289
例如,我必须从XXXXLib1
和3195
XXXXLib2
获取3289
。
我需要逻辑来将projectlib与相应的版本号匹配,而不是此场景的完整脚本。
我尝试使用For列表,但我不知道如何索引参数列表。
答案 0 :(得分:0)
您展示的这对列表属性存在的问题是(至少使用ant-contrib:for)您无法交叉引用它们。
This answer显示了如何使用ant-contrib:for / macrodef轻松交叉引用属性,并可能作为示例。
对于您的情况,我建议您将属性结构更改为Ant中更具消耗性,例如:
projectliblist=XXXXLib1,XXXXLib2
projectlib.XXXXLib1.revision=3195
projectlib.XXXXLib2.revision=3289
你可以按照我上面链接的答案中的模式消费,或者可能:
projectliblist=XXXXLib1/3195,XXXXLib2/3289
你可以在一个循环中使用它,它将每个列表元素分成两部分并传递给一个带有两个属性的macrodef。