ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Scot P. Floess" <flo...@mindspring.com>
Subject Re: Implementing a loop in ANT
Date Thu, 08 Jun 2006 10:58:04 GMT
Ben:

Wow...thats sorta neat ;)  I like what  you did here with build.number - 
cool :)

Ben Stringer wrote:
> On Wed, 2006-06-07 at 11:17 -0700, Guru Balse wrote:
>   
>> I am sure this question has been asked before, and I could not see any 
>> reasonable answer in the archives.  How can I implement a loop in ANT 
>> without using scripts?  For example, if I want to call a certain target 
>> N times, how can I do it? 
>>
>> Using ant-contrib is OK.  Of course, something like <for 
>> list="1,2,3,4,5,6,...,N"> would work but I want N to be a property that 
>> can be specified in the command line.
>>
>> Thanks in advance for your suggestions.
>>     
>
> Here is a rather contrived solution using <buildnumber/> for state and
> <ant> for recursion. Not sure how much use it will be in real world use,
> but it was fun to write :)
>
> <project default="increment" name="Increment Test"  basedir=".">
>
>   <target name="check.condition" unless="increment.stop">
>     <ant antfile="build.xml" target="increment" inheritAll="no"/>
>   </target>
>
>   <target name="remove.statefile" if="increment.stop">
>     <delete file="build.number"/>
>   </target>
>
>   <target name="increment">
>     <buildnumber/>
>     <echo>N = ${N}  BN=${build.number}</echo>
>     <condition property="increment.stop">
>       <equals arg1="${N}" arg2="${build.number}"/>
>     </condition>
>     <antcall target="remove.statefile"/>
>     <antcall target="check.condition"/>
>   </target>
>
> </project>
>
>
> ant -f increment.xml -DN=3
> Buildfile: increment.xml
>
> increment:
>      [echo] N = 3  BN=0
>
> remove.statefile:
>
> check.condition:
>
> increment:
>      [echo] N = 3  BN=1
>
> check.condition:
>
> increment:
>      [echo] N = 3  BN=2
>
> check.condition:
>
> increment:
>      [echo] N = 3  BN=3
>
> check.condition:
>
> BUILD SUCCESSFUL
> Total time: 1 second
>
> There is a bug - the removal of the "build.number" file only works in
> cases where N=0, and I have not yet worked out why. So remove
> build.number manually each time if you are playing with this buildfile.
>
> Cheers, Ben
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
>
>   

-- 
Scot P. Floess
27 Lake Royale
Louisburg, NC  27549

252-478-8087 (Home)
919-754-4592 (Work)

Chief Architect JPlate  http://sourceforge.net/projects/jplate
Chief Architect JavaPIM http://sourceforge.net/projects/javapim


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message