diff --git a/docs/manual/CoreTasks/subant.html b/docs/manual/CoreTasks/subant.html index e25ac3405..267b1016f 100644 --- a/docs/manual/CoreTasks/subant.html +++ b/docs/manual/CoreTasks/subant.html @@ -1,4 +1,4 @@ - +
@@ -114,9 +114,9 @@ Requirement - - - + + +Now a little more complex - but useful - scenario. Assume that we have + a directory structure like this:
++ root + | common.xml + | build.xml + | + +-- modules + +-- modA + | +-- src + +-- modB + +-- src + + common.xml:+ +
+ <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> + + build.xml:
+ <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> + + modules/modA/build.xml:
+ <project name="modA"> + <import file="../../common.xml"/> + </project> +
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. +
+ + +