Using rarResources

The rarResources parameter allows you to include additional resources from custom directories into your RAR archive. Each resource can be configured with a source directory, target path within the RAR, and optional filtering.

Basic Configuration

To add extra resources to your RAR, configure the rarResources parameter with one or more rarResource elements. Each rarResource element supports the following options:

  • directory - The source directory containing the files to include
  • targetPath - The destination path within the RAR archive
  • filtering - Whether to apply Maven filtering to the files (default: false)
  • includes - File patterns to include (optional)
  • excludes - File patterns to exclude (optional)
    <project>
      [...]
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-rar-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
              <rarResources>
                <rarResource>
                  <directory>${basedir}/src/main/ext</directory>
                  <targetPath>ext</targetPath>
                </rarResource>
              </rarResources>
            </configuration>
          </plugin>
        </plugins>
      </build>
      [...]
    </project>

Using Multiple Resource Directories

You can configure multiple rarResource elements to include files from different source directories into different locations within the RAR archive:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-rar-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
          <rarResources>
            <rarResource>
              <directory>${basedir}/src/main/ext</directory>
              <targetPath>ext</targetPath>
            </rarResource>
            <rarResource>
              <directory>${basedir}/src/main/config</directory>
              <targetPath>config</targetPath>
            </rarResource>
          </rarResources>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

Applying Maven Filtering

To enable Maven property filtering for specific resources, set the filtering option to true. This will replace Maven properties (like ${project.version}) with their actual values during the build:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-rar-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
          <rarResources>
            <rarResource>
              <directory>${basedir}/src/main/ext</directory>
              <targetPath>ext</targetPath>
            </rarResource>
            <rarResource>
              <directory>${basedir}/src/main/ext-filtered</directory>
              <targetPath>ext-filtered</targetPath>
              <filtering>true</filtering>
            </rarResource>
          </rarResources>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

Using Includes and Excludes

You can filter which files to include from a directory using the includes and excludes options:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-rar-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
          <rarResources>
            <rarResource>
              <directory>${basedir}/src/main/resources</directory>
              <targetPath>lib</targetPath>
              <includes>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
              </includes>
              <excludes>
                <exclude>**/test/**</exclude>
              </excludes>
            </rarResource>
          </rarResources>
        </configuration>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

Then execute the plugin by invoking the rar:rar goal.

mvn rar:rar