jhm 2004/09/06 22:59:37 Modified: proposal/xdocs/src/org/apache/tools/ant/taskdefs SubAnt.xml Log: Integrate <subant> complex example into mergefile. Revision Changes Path 1.10 +58 -0 ant/proposal/xdocs/src/org/apache/tools/ant/taskdefs/SubAnt.xml Index: SubAnt.xml =================================================================== RCS file: /home/cvs/ant/proposal/xdocs/src/org/apache/tools/ant/taskdefs/SubAnt.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- SubAnt.xml 9 Feb 2004 21:29:18 -0000 1.9 +++ SubAnt.xml 7 Sep 2004 05:59:37 -0000 1.10 @@ -67,5 +67,63 @@ this snippet will execute the compile target of /opt/project/build1.xml, setting the basedir to projects1, projects2, projects3 </p> + <p>Now a little more complex - but useful - scenario. Assume that we have + a directory structure like this:</p> + <pre> + root + | common.xml + | build.xml + | + +-- modules + +-- modA + | +-- src + +-- modB + +-- src + + <u><b>common.xml:</b></u><br/> + <project> + <property name="src.dir" value="src"/> + <property name="build.dir" value="build"/> + <property name="classes.dir" value="${build.dir}/classes"/> + + <target name="compile"> + <mkdir dir="${classes.dir}"/> + <javac srcdir="${src.dir}" destdir="${classes.dir}"/> + </target> + + <!-- more targets --> + </project> + + <u><b>build.xml:</b></u><br/> + <project> + + <macrodef name="iterate"> + <attribute name="target"/> + <sequential> + <subant target="@{target}"> + <fileset dir="modules" includes="*/build.xml"/> + </subant> + </sequential> + </macrodef> + + + <target name="compile"> + <iterate target="compile"/> + </target> + + <!-- more targets --> + </project> + + <u><b>modules/modA/build.xml:</b></u><br/> + <project name="modA"> + <import file="../../common.xml"/> + </project> + </pre> + + <p>This results in very small buildfiles in the modules, maintainable + buildfile (common.xml) and a clear project structure. Additionally + the root buildfile is capable to run the whole build over all + modules. + </p> </section> </external>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]