<?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:vote-txt</title>
  </properties>
  <body>
    <section name="commons:vote-txt">
      <p><strong>Full name</strong>:</p>
      <p>org.apache.commons:commons-release-plugin:1.4:vote-txt</p>
      <p><strong>Description</strong>:</p>
      <div>Apache Commons Release Mojo: Generate VOTE.txt</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">
        </table>
      </subsection>
      <subsection name="Optional Parameters">
        <table border="0" align="left">
        </table>
      </subsection>
      <subsection name="Parameter Details">
      </subsection>
    </section>
  </body>
</document>