There can be issues with using <ant> and <antcall> - they are in the same VM - there can be "leakages" between projects. - the rules for basedir are a bit weird
I use the following (on linux): <macrodef name="sub"> <attribute name="dir"/> <attribute name="target"/> <sequential> <exec executable="bash" dir="@{dir}" failonerror="yes"> <arg value="-c"/> <arg value="ant -emacs @{target}"/> </exec> </sequential> </macrodef> and: <macrodef name="dirs"> <attribute name="target"/> <sequential> <ac:for param="dir" list="${dirs}"> <sequential> <sub dir="@{dir}" target="@{target}"/> </sequential> </ac:for> </sequential> </macrodef> - one can do something similar on dos (if one has the patience). Peter On Wed, May 28, 2008 at 10:03 AM, Knuplesch, Juergen <[EMAIL PROTECTED]> wrote: > But if you use <ANT> or <ANTCALL> it is like you would start ANT a second > time. Therfore the properties > are set in the target or script that you call. The old values are lost if you > use the attribute > Inheritall=false > And using <property> inside <Ant> sets some properties to a value you define. > > > > -- > Jürgen Knuplesch > -----Ursprüngliche Nachricht----- > Von: Chris Green [mailto:[EMAIL PROTECTED] > Gesendet: Mittwoch, 28. Mai 2008 10:56 > An: Ant Users List > Betreff: Re: Calling a cmd batch file from Ant > > Jan > > Unless I'm missing something here, that wouldn't work. > > You can't redefine an ant property one it has already been defined in one > specific execution of the said script. > > That's why I was trying to get the batch file to set up an environment > variable before executing the generic component.xml > > Chris > > On Wed, May 28, 2008 at 10:49 AM, <[EMAIL PROTECTED]> wrote: > >> But in your original post you have specified the component in your >> batch file. >> > > > > Batch file contents are :- >> > > > > >> > > > > set component=common >> > > > > ant -f %build.dir%/component.xml >> >> Where is the difference? >> >> <project name="master"> >> <target name="buildComponentOne"> >> <ant antfile="component.xml"> >> <property name="component" value="one"/> >> </ant> >> </target> >> <target name="buildComponentTwo"> >> <ant antfile="component.xml"> >> <property name="component" value="two"/> >> </ant> >> </target> >> </project> >> >> <project name="component"> >> <property file="${component}.properties"/> >> <echo> Build one: ${one} </echo> >> <echo> Build two: ${two} </echo> >> </project> >> >> one.properties: >> # Specifies which parts for component 'one' to do one=J two=N >> >> two.properties: >> # Specifies which parts for component 'one' to do one=J two=J >> >> >> >> Jan >> >> >> >> > -----Ursprüngliche Nachricht----- >> > Von: Chris Green [mailto:[EMAIL PROTECTED] >> > Gesendet: Mittwoch, 28. Mai 2008 10:36 >> > An: Ant Users List >> > Betreff: Re: Calling a cmd batch file from Ant >> > >> > Can't use ant or antcall's even in a nested structure. Reason being >> > :- >> > >> > Script process designed to build numerous components of an >> > application. >> > >> > Each of these components has a parameter set up in the properties >> > file set to Y or N to define whether that component is built during >> > that execution of the script. >> > >> > Therefore, more than one component may need to be built during one >> > execution of the build script. >> > >> > On this basis, the controlling ant script, build.xml cannot have the >> > component variable defined within it, even nested, as it potentially >> > needs to be redefined multiple times. >> > >> > The component.xml file (generic) which is called again and again for >> > each component that needs to be build. Want to keep this generic and >> > as simple as possible. Therefore no hard coding using if statements >> > to set the 'component' variable. >> > >> > On Wed, May 28, 2008 at 10:05 AM, Knuplesch, Juergen < >> > [EMAIL PROTECTED]> wrote: >> > >> > > If you use <ant> Task or <antcall> you can run the target >> > with different >> > > content of a property. >> > > E.g. >> > > >> > > <antcall target="your.target" inheritall="false"> >> > > <param name="your.property" value="value1" /> >> > > </antcall> >> > > >> > > <antcall target="your.target" inheritall="false"> >> > > <param name="your.property" value="value2" /> >> > > </antcall> >> > > >> > > I even use this in <for> loops made with antcontrb. >> > > >> > > >> > > >> > > -- >> > > Jürgen Knuplesch www.icongmbh.de >> > > icon Systemhaus GmbH Tel. +49 711 806098-275 >> > > Sophienstraße 40 >> > > D-70178 Stuttgart Fax. +49 711 806098-299 >> > > >> > > Geschäftsführer: Uwe Seltmann >> > > HRB Stuttgart 17655 >> > > USt-IdNr.: DE 811944121 >> > > -----Ursprüngliche Nachricht----- >> > > Von: Chris Green [mailto:[EMAIL PROTECTED] >> > > Gesendet: Mittwoch, 28. Mai 2008 09:51 >> > > An: Ant Users List >> > > Cc: [EMAIL PROTECTED] >> > > Betreff: Re: Calling a cmd batch file from Ant >> > > >> > > The reason I'm not using ant is that :- >> > > >> > > 1. My main build.xml script calls the component.xml script >> > numerous times. >> > > 2. Each time the component.xml script is called, the >> > variable 'component' >> > > needs to be set to something different. >> > > 3. Component.xml is generic therefore don't want to hard >> > code anything >> > > variables in 4. Once variable set, can't be changed. >> > > >> > > Honestly, there is some underlying logic behind all of this. >> > > >> > > Chris >> > > >> > > On Wed, May 28, 2008 at 9:41 AM, <[EMAIL PROTECTED]> wrote: >> > > >> > > > > I am calling a dos batch file from an Ant script using >> > the following >> > > > > code :- >> > > > > >> > > > > <property name="dos" location="c:/windows/system32/cmd.exe"/> >> > > > > >> > > > > >> > > > > <exec executable="${dos}" dir="c:/build/"> >> > > > > <arg value="CommonCommponent.bat"/> </exec> >> > > > > >> > > > > On the assumption that I get the Microsoft Windows >> > Copyright info >> > > > > appear, I assume the above commands are running ok. The >> > only trouble >> > > > > is, the contents / commands in the batch file don't seen to >> > > > > get executed. >> > > > >> > > > >> > > > http://ant.apache.org/faq.html#batch-shell-execute >> > > > >> > > > >> > > > > Batch file contents are :- >> > > > > >> > > > > set component=common >> > > > > ant -f %build.dir%/component.xml >> > > > >> > > > Why not use <ant> ? >> > > > >> > > > >> > > > Jan >> > > > >> > > > >> > -------------------------------------------------------------------- >> > - >> > > > To unsubscribe, e-mail: [EMAIL PROTECTED] >> > For additional >> > > > commands, e-mail: [EMAIL PROTECTED] >> > > > >> > > > >> > > >> > > >> > -------------------------------------------------------------------- >> > - >> > > To unsubscribe, e-mail: [EMAIL PROTECTED] For >> > > additional commands, e-mail: [EMAIL PROTECTED] >> > > >> > > >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional >> commands, e-mail: [EMAIL PROTECTED] >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]