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> | |||||