 ------
 Maven 2 Rar Plugin: configuration examples
 ------
 Stephane Nicoll
 <snicoll@apache.org>
 ------
 September 25, 2005

Introduction

  The RAR plugin allows to package resource adapter archive. Invoking this plugin
  will actually compile and generate an archive for the connector's compiled
  classes.

  By default, the generated JAR file is included in the RAR file. This behavior
  is controlled by the <includeJar> property. For instance, to exclude the generated
  JAR file from the RAR, configure your project as follows:

+--------
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-rar-plugin</artifactId>
        <configuration>
           <includeJar>false</includeJar>
        </configuration>
      </plugin>
    </plugins>
  </build>
+---------


   It is also possible to specify a custom location for the ra.xml file. For
   instance to use the file located in src/resources/ra.xml, configure your
   project as follows:

+--------
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-rar-plugin</artifactId>
        <configuration>
           <raXmlFile>src/resources/ra.xml</raXmlFile>
        </configuration>
      </plugin>
    </plugins>
  </build>
+---------



