  ------
  Adding Manifest File
  ------
  Allan Ramirez
  ------
  July 2006
  ------

~~ Copyright 2006 The Apache Software Foundation.
~~
~~ Licensed 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.

~~ NOTE: For help with the syntax of this file, see:
~~ http://maven.apache.org/guides/mini/guide-apt-format.html

Adding Manifest File

  By default, The RAR plugin retrieves the manifest file to use in this
  location <<<${basedir}/src/main/rar/META-INF/MANIFEST.MF>>>. To be able to
  change the location, configure the <<manifestFile>> property and set the
  value to the new location.

+---+
<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-rar-plugin</artifactId>
        <configuration>
           <manifestFile>src/resources/META-INF/MANIFEST.MF</manifestFile>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>
+----+
