Maven jar Plugin: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 21: Line 21:
         <groupId>org.apache.maven.plugins</groupId>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jar-plugin</artifactId>
         <artifactId>maven-jar-plugin</artifactId>
         ...
         <version>3.0.2</version>
         <configuration>
         <configuration>
           <archive>
           <archive>
Line 30: Line 30:
           </archive>
           </archive>
         </configuration>
         </configuration>
        ...
       </plugin>
       </plugin>
</pre>
</pre>

Revision as of 00:29, 15 March 2017

External

Internal

Overview

Plugin Options

forceCreation

If set to true, the jar plugin will build a new JAR even if none of the contents appear to have changed. By default, this plugin looks to see if the output jar exists and inputs have not changed. If these conditions are true, the plugin skips creation of the jar.

Declaring a Main Class in JAR

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>3.0.2</version>
        <configuration>
          <archive>
            <manifest>
              <addClasspath>true</addClasspath>
              <mainClass>fully.qualified.MainClass</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>

Other Manifest Customization

Adding arbitrary manifest entries:

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-jar-plugin</artifactId>
   <configuration>
      <archive>
         <manifest>
            <mainClass>io.novaordis.eventagent.EventAgent</mainClass>
         </manifest>
         <manifestEntries>
            <Premain-Class>io.novaordis.eventagent.EventAgent</Premain-Class>
            <Agent-Class>io.novaordis.eventagent.EventAgent</Agent-Class>
            <Can-Redefine-Classes>true</Can-Redefine-Classes>
            <Can-Retransform-Classes>true</Can-Retransform-Classes>
         </manifestEntries>
      </archive>
   </configuration>
</plugin>

In general, to use arbitrary manifest entries, use the following syntax:

...
<manifest>
</manifest>
<manifestEntries>
   ...
   <key>value</key>
   ...
</manifestEntries>