在Ant中更改两个目标中的变量值
我有一个目标:在Ant中更改两个目标中的变量值,ant,Ant,我有一个目标: <target name="add_inner_class" > <property name="client.jar.classes" value="${client.class.jar.package.list}"/> <foreach list="${client.class.jar.package.list}" target="add_inner_class_list" p
<target name="add_inner_class" >
<property name="client.jar.classes"
value="${client.class.jar.package.list}"/>
<foreach list="${client.class.jar.package.list}"
target="add_inner_class_list" param="outer_class"
delimiter=" " inheritall="true" />
</target>
此目标调用第二个目标“添加内部类列表”
在第二个目标中,我想更新调用目标中定义的属性(即名为client.jar.classes
)的属性。
在每次调用中,我希望此值保持不变,并在需要时进行更新
我想知道,我能在Ant中做到这一点吗?简单的回答是不,你不能这么做,因为Ant。属性一旦有值,就不能更改。从文件中引用: 属性是不可变的:任何设置属性的人都会首先将其冻结 建造的其余部分;它们绝对不是变量 不过,有几件事你也许可以用来实现你想要的。 首先是Ant,它允许您在目标本地拥有一个属性实例,该属性的值与目标外部的属性值不同。但从问题的细节来看,似乎您想要的是一个变量而不是一个属性—您想要随意更改值。既然您已经在使用ant contrib,为什么不使用?Ant contrib变量是可变的,在大多数情况下,可以直接使用它来代替Ant属性