<?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>commons:all</title>
  </properties>
  <body>
    <section name="commons:all-sandbox">
      <p><strong>Full name</strong>:</p>
      <p>org.apache.commons:commons-build-plugin:1.9:all-sandbox</p>
      <p><strong>Description</strong>:</p>
      <div>Apache Commons Build Mojo: Generate all sandbox pages</div>
      <p><strong>Attributes</strong>:</p>
      <ul>
        <li>Requires a Maven 2.0 project to be executed.</li>
        <li>Is NOT inherited by default in multi-project builds.</li>
      </ul>
      <subsection name="Required Parameters">
        <p>This is the union of all parameters for all goals in this plugin.</p>
      </subsection>
      <subsection name="Optional Parameters">
        <p>This is the union of all parameters for all goals in this plugin.</p>
      </subsection>
      <subsection name="Parameter Details">
        <p>This is the union of all parameters for all goals in this plugin.</p>
      </subsection>
    </section>
  </body>
</document>