<?xml version="1.0" encoding="UTF-8"?>
<!--
   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.
-->
<document>

    <properties>
        <title>Generating All Pages</title>
        <author email="dev@commons.apache.org">Apache Commons Documentation Team</author>
    </properties>

    <body>

        <section name="commons-build:all" href="all">

            <subsection name="Overview">
                <p>
                The <code>commons-build:all</code> goal generates all pages for a <strong>Proper</strong> component
                (for  <strong>Sandbox</strong> components use the <a href="all-sandbox.html">commons-build:all-sandbox</a> goal).
                Execute the goal using the following command: <source>mvn commons-build:all</source>
                </p>
                <p>
                This goal uses the following:
                <ul>
                    <li>The goal is mapped to the ant script/target using the <code>all</code> Mojo definition in the
                        <a href="https://gitbox.apache.org/repos/asf?p=commons-build-plugin.git;a=tree;f=src/main/scripts/generate-xdocs.mojos.xml">generate-xdocs.mojos.xml</a> mapping document</li>
                    <li>Executes the <code>all</code> target in
                        <a href="https://gitbox.apache.org/repos/asf?p=commons-build-plugin.git;a=tree;f=src/main/scripts/generate-xdocs.build.xml">generate-xdocs.build.xml</a>
                        ant script</li>
                </ul>
                </p>
            </subsection>

            <subsection name="Configuration">
                <p>
                To generate all pages, the union of other goal's properties are configured in the component's <code>pom.xml</code>
                </p>
            </subsection>

        </section>

    </body>
</document>
