git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@465167 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -437,7 +437,7 @@ | |||||
| <td valign="top" align="center">Yes</td> | <td valign="top" align="center">Yes</td> | ||||
| </tr> | </tr> | ||||
| </table> | </table> | ||||
| <p><em>since Ant 1.7</em>.</p> | |||||
| <p><em>since Ant 1.7</em>.</p> | |||||
| </blockquote></td></tr> | </blockquote></td></tr> | ||||
| </table> | </table> | ||||
| <!-- End Element --> | <!-- End Element --> | ||||
| @@ -447,8 +447,8 @@ | |||||
| </table> | </table> | ||||
| <!-- End Elements --> | <!-- End Elements --> | ||||
| <table border="0" cellspacing="0" cellpadding="2" width="100%"> | <table border="0" cellspacing="0" cellpadding="2" width="100%"> | ||||
| <tr><td> </td></tr> | <tr><td> </td></tr> | ||||
| @@ -459,7 +459,7 @@ | |||||
| <strong>Examples</strong></a></font> | <strong>Examples</strong></a></font> | ||||
| </td></tr> | </td></tr> | ||||
| <tr><td><blockquote> | |||||
| <tr><td><blockquote style=""> | |||||
| <pre> | <pre> | ||||
| <project name="subant" default="subant1"> | <project name="subant" default="subant1"> | ||||
| <property name="build.dir" value="subant.build"/> | <property name="build.dir" value="subant.build"/> | ||||
| @@ -561,7 +561,7 @@ | |||||
| the root buildfile is capable to run the whole build over all | the root buildfile is capable to run the whole build over all | ||||
| modules. | modules. | ||||
| </p> | </p> | ||||
| <pre> | <pre> | ||||
| <subant failonerror="false"> | <subant failonerror="false"> | ||||
| <fileset dir="." includes="**/build.xml" excludes="build.xml"/> | <fileset dir="." includes="**/build.xml" excludes="build.xml"/> | ||||
| @@ -569,8 +569,18 @@ | |||||
| <target name="build"/> | <target name="build"/> | ||||
| </subant> | </subant> | ||||
| </pre> | </pre> | ||||
| <p>Does a "clean build" for each subproject.</p> | |||||
| <p>Does a "clean build" for each subproject.</p> | |||||
| <p><b>Hint:</b> because buildfiles are plain xml, you could generate the | |||||
| masterbuildfile from the common buildfile by using a XSLT transformation: | |||||
| </p> | |||||
| <pre> | |||||
| <xslt in="common.xml" | |||||
| out="master.xml" | |||||
| style="${ant.home}/etc/common2master.xsl" | |||||
| /> | |||||
| </pre> | |||||
| <!-- manually written --> | <!-- manually written --> | ||||
| @@ -585,4 +595,4 @@ | |||||
| </table> | </table> | ||||
| </body> | </body> | ||||
| </html> | |||||
| </html> | |||||
| @@ -0,0 +1,73 @@ | |||||
| <?xml version="1.0" encoding="ISO-8859-1"?> | |||||
| <!-- | |||||
| This stylesheet can be used to generate a master buildfile from a common | |||||
| buildfile (see manual for <subant>). | |||||
| Foreach <target> in the common buildfile it generates a corresponding | |||||
| target in the master buildfile for iterating over that target. | |||||
| --> | |||||
| <xsl:stylesheet | |||||
| version="1.0" | |||||
| xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> | |||||
| <!-- | |||||
| Licensed to the Apache Software Foundation (ASF) under one or more | |||||
| contributor license agreements. See the NOTICE file distributed with | |||||
| this work for additional information regarding copyright ownership. | |||||
| The ASF licenses this file to You under the Apache License, Version 2.0 | |||||
| (the "License"); you may not use this file except in compliance with | |||||
| the License. You may obtain a copy of the License at | |||||
| http://www.apache.org/licenses/LICENSE-2.0 | |||||
| Unless required by applicable law or agreed to in writing, software | |||||
| distributed under the License is distributed on an "AS IS" BASIS, | |||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
| See the License for the specific language governing permissions and | |||||
| limitations under the License. | |||||
| --> | |||||
| <xsl:output indent="no" method="text" encoding="ISO-8859-1"/> | |||||
| <xsl:strip-space elements="*"/> | |||||
| <xsl:template match="/"> | |||||
| <xsl:apply-templates/> | |||||
| </xsl:template> | |||||
| <xsl:template match="project"> | |||||
| <![CDATA[ | |||||
| <project name="master"> | |||||
| <macrodef name="iterate"> | |||||
| <attribute name="target"/> | |||||
| <sequential> | |||||
| <subant target="@{target}"> | |||||
| <fileset dir="modules" includes="*/build.xml"/> | |||||
| </subant> | |||||
| </sequential> | |||||
| </macrodef> | |||||
| ]]> | |||||
| <xsl:apply-templates/> | |||||
| <![CDATA[ | |||||
| </project> | |||||
| ]]> | |||||
| </xsl:template> | |||||
| <xsl:template match="target"> | |||||
| <target name="<xsl:value-of select="@name"/>"<xsl:if test="@description"> description="<xsl:value-of select="@description"/>"</xsl:if>> | |||||
| <iterate target="<xsl:value-of select="@name"/>"/> | |||||
| </target> | |||||
| </xsl:template> | |||||
| <xsl:template match="text()"/> | |||||
| </xsl:stylesheet> | |||||