Properties are immutable. Run the build file with -verbose and you will
probably see that count is not being updated because it is already set.
Once set a property will not be set a different value.
That said, I think there is a way to use ant-contrib to do this. Look at
the math property task of ant-contrib. There you will see examples of
using a var to do the math. In your case use a var in the loop then
assign the value to count as the last thing you do in the task.
HTH Bill
broken connection wrote:
Hi Friends,
Is there any way to control iteration in ant. I want to put an if-else
condition in the for loop to control the action depending upon the
iteration
count.I tried this:
build.xml
<project name="test" default="test_iteration">
<taskdef resource="net/sf/antcontrib/antlib.xml" />
<property name="prop_file" value="value.properties"/>
<target name="test_iteration">
<property file="${prop_file}"/>
<for list="1,2" param="argvalue" >
<sequential>
<!-- use property file to increment counter -->
<propertyfile file="value.properties">
<entry key="count" type="int" operation="+" value="1" />
</propertyfile>
<echo>counter: ${count}</echo>
</sequential>
</for>
</target>
</project>
value.properties file:
count=0
After I execute this,I get this as output:
C:\Documents and Settings\Desktop\test>ant
Buildfile: build.xml
test_iteration:
[propertyfile] Updating property file: C:\Documents and
Settings\hjhutty\Desktop
\test\value.properties
[echo] counter: 0
[propertyfile] Updating property file: C:\Documents and
Settings\hjhutty\Desktop
\test\value.properties
[echo] counter: 0
BUILD SUCCESSFUL
Total time: 1 second
value.properties=2
Can somebody explain me,why ${count} still displays 0 in the second
iteration,though the properties file has been updated.
Please help.
Thanks