<?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:download-page</title>
  </properties>
  <body>
    <section name="commons:download-page">
      <p><strong>Full name</strong>:</p>
      <p>org.apache.commons:commons-build-plugin:1.9:download-page</p>
      <p><strong>Description</strong>:</p>
      <div>Apache Apache Commons Build Mojo: Generate Download page</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">
        <table border="0" align="left">
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th>Since</th>
            <th>Description</th>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.version">commons.release.version</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>The version of the latest release of the project.<br/><strong>Default value is</strong>: <code>${commons.release.version}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.name">commons.release.name</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>The name of the latest release of the project.<br/><strong>Default value is</strong>: <code>${commons.release.name}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.2.name">commons.release.2.name</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>The name of the alternative release of the project.<br/><strong>Default value is</strong>: <code>${commons.release.2.name}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.3.name">commons.release.3.name</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>The name of the alternative release of the project.<br/><strong>Default value is</strong>: <code>${commons.release.3.name}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#basedir">basedir</a></strong></td>
            <td><code>File</code></td>
            <td><code>-</code></td>
            <td>The base directory from which to execute the Ant script.<br/><strong>Default value is</strong>: <code>${basedir}</code>.</td>
          </tr>
        </table>
      </subsection>
      <subsection name="Optional Parameters">
        <table border="0" align="left">
          <tr>
            <th>Name</th>
            <th>Type</th>
            <th>Since</th>
            <th>Description</th>
          </tr>
          <tr>
            <td><strong><a href="#commons.binary.suffix">commons.binary.suffix</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>The suffix for the binary distro.<br/><strong>Default value is</strong>: <code>${commons.binary.suffix}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.desc">commons.release.desc</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>Release Title or Description.<br/><strong>Default value is</strong>: <code>${commons.release.desc}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.subdir">commons.release.subdir</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>Subdirectory (if not source/binaries)<br/><strong>Default value is</strong>: <code>${commons.release.subdir}</code>.</td>
          </tr>
          <!-- commons.release.2.* -->
          <tr>
            <td><strong><a href="#commons.release.2.version">commons.release.2.version</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>The version of an alternative release of the project.<br/><strong>Default value is</strong>: <code>${commons.release.2.version}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.2.desc">commons.release.2.desc</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>Alternative Release Title or Description.<br/><strong>Default value is</strong>: <code>${commons.release.2.desc}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.2.binary.suffix">commons.release.2.binary.suffix</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>The suffix for the alternative release binary distro.<br/><strong>Default value is</strong>: <code>${commons.release.2.binary.suffix}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.2.subdir">commons.release.2.subdir</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>Subdirectory (if not source/binaries)<br/><strong>Default value is</strong>: <code>${commons.release.2.subdir}</code>.</td>
          </tr>
          <!-- commons.release.3.* -->
          <tr>
            <td><strong><a href="#commons.release.3.version">commons.release.3.version</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>The version of an alternative release of the project.<br/><strong>Default value is</strong>: <code>${commons.release.3.version}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.3.desc">commons.release.3.desc</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>Alternative Release Title or Description.<br/><strong>Default value is</strong>: <code>${commons.release.3.desc}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.3.binary.suffix">commons.release.3.binary.suffix</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>The suffix for the alternative release binary distro.<br/><strong>Default value is</strong>: <code>${commons.release.3.binary.suffix}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.3.subdir">commons.release.3.subdir</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>Subdirectory (if not source/binaries)<br/><strong>Default value is</strong>: <code>${commons.release.3.subdir}</code>.</td>
          </tr>
          <!-- commons.release.4.* -->
          <tr>
            <td><strong><a href="#commons.release.4.version">commons.release.4.version</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>The version of an alternative release of the project.<br/><strong>Default value is</strong>: <code>${commons.release.4.version}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.4.desc">commons.release.4.desc</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>Alternative Release Title or Description.<br/><strong>Default value is</strong>: <code>${commons.release.4.desc}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.4.binary.suffix">commons.release.4.binary.suffix</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>The suffix for the alternative release binary distro.<br/><strong>Default value is</strong>: <code>${commons.release.4.binary.suffix}</code>.</td>
          </tr>
          <tr>
            <td><strong><a href="#commons.release.4.subdir">commons.release.4.subdir</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>Subdirectory (if not source/binaries)<br/><strong>Default value is</strong>: <code>${commons.release.4.subdir}</code>.</td>
          </tr>
          <!-- Miscellaneous -->
          <tr>
            <td><strong><a href="#messageLevel">messageLevel</a></strong></td>
            <td><code>String</code></td>
            <td><code>-</code></td>
            <td>The message-level used to tune the verbosity of Ant logging.<br/><strong>Default value is</strong>: <code>info</code>.</td>
          </tr>
        </table>
      </subsection>
      <subsection name="Parameter Details">
        <p><strong><a name="commons.release.version">commons.release.version</a>:</strong></p>
        <div>The version of the latest release of the project.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.lang.String</code></li>
          <li><strong>Required</strong>: <code>Yes</code></li>
          <li><strong>Default</strong>: <code>${commons.release.version}</code></li>
        </ul><hr/><p><strong><a name="commons.release.name">commons.release.name</a>:</strong></p>
        <div>The name of the latest release of the project.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.lang.String</code></li>
          <li><strong>Required</strong>: <code>Yes</code></li>
          <li><strong>Default</strong>: <code>${commons.release.name}</code></li>
        </ul><hr/><p><strong><a name="commons.binary.suffix">commons.binary.suffix</a>:</strong></p>
        <div>The suffix for the binary distro.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.lang.String</code></li>
          <li><strong>Required</strong>: <code>No</code></li>
          <li><strong>Default</strong>: <code>${commons.binary.suffix}</code></li>
        </ul><hr/><p><strong><a name="commons.release.desc">commons.release.desc</a>:</strong></p>
        <div>Release Title or Description.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.lang.String</code></li>
          <li><strong>Required</strong>: <code>No</code></li>
          <li><strong>Default</strong>: <code>${commons.release.desc}</code></li>
        </ul><hr/><p><strong><a name="commons.release.2.version">commons.release.2.version</a>:</strong></p>
        <div>The version of an alternative release of the project.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.lang.String</code></li>
          <li><strong>Required</strong>: <code>No</code></li>
          <li><strong>Default</strong>: <code>${commons.release.2.version}</code></li>
        </ul><hr/><p><strong><a name="commons.release.2.name">commons.release.2.name</a>:</strong></p>
        <div>The name of the alternative release of the project.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.lang.String</code></li>
          <li><strong>Required</strong>: <code>Yes</code></li>
          <li><strong>Default</strong>: <code>${commons.release.2.name}</code></li>
        </ul><hr/><p><strong><a name="commons.release.2.desc">commons.release.2.desc</a>:</strong></p>
        <div>Alternative Release Title or Description.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.lang.String</code></li>
          <li><strong>Required</strong>: <code>No</code></li>
          <li><strong>Default</strong>: <code>${commons.release.2.desc}</code></li>
        </ul><hr/><p><strong><a name="commons.release.2.binary.suffix">commons.release.2.binary.suffix</a>:</strong></p>
        <div>The suffix for the alternative release binary distro.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.lang.String</code></li>
          <li><strong>Required</strong>: <code>No</code></li>
          <li><strong>Default</strong>: <code>${commons.release.2.binary.suffix}</code></li>
        </ul><hr/><hr/><p><strong><a name="commons.release.3.version">commons.release.3.version</a>:</strong></p>
        <div>The version of an alternative release of the project.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.lang.String</code></li>
          <li><strong>Required</strong>: <code>No</code></li>
          <li><strong>Default</strong>: <code>${commons.release.3.version}</code></li>
        </ul><hr/><p><strong><a name="commons.release.3.name">commons.release.3.name</a>:</strong></p>
        <div>The name of the alternative release of the project.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.lang.String</code></li>
          <li><strong>Required</strong>: <code>Yes</code></li>
          <li><strong>Default</strong>: <code>${commons.release.3.name}</code></li>
        </ul><hr/><p><strong><a name="commons.release.3.desc">commons.release.3.desc</a>:</strong></p>
        <div>Alternative Release Title or Description.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.lang.String</code></li>
          <li><strong>Required</strong>: <code>No</code></li>
          <li><strong>Default</strong>: <code>${commons.release.3.desc}</code></li>
        </ul><hr/><p><strong><a name="commons.release.3.binary.suffix">commons.release.3.binary.suffix</a>:</strong></p>
        <div>The suffix for the alternative release binary distro.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.lang.String</code></li>
          <li><strong>Required</strong>: <code>No</code></li>
          <li><strong>Default</strong>: <code>${commons.release.3.binary.suffix}</code></li>
        </ul><hr/><p><strong><a name="basedir">basedir</a>:</strong></p>
        <div>The base directory from which to execute the Ant script.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.io.File</code></li>
          <li><strong>Required</strong>: <code>Yes</code></li>
          <li><strong>Expression</strong>: <code>${antBasedir}</code></li>
          <li><strong>Default</strong>: <code>${basedir}</code></li>
        </ul><hr/><p><strong><a name="messageLevel">messageLevel</a>:</strong></p>
        <div>The message-level used to tune the verbosity of Ant logging.</div>
        <ul>
          <li><strong>Type</strong>: <code>java.lang.String</code></li>
          <li><strong>Required</strong>: <code>No</code></li>
          <li><strong>Expression</strong>: <code>${antMessageLevel}</code></li>
          <li><strong>Default</strong>: <code>info</code></li>
        </ul>
      </subsection>
    </section>
  </body>
</document>