Comment créer un jar exécutable avec Maven

Publié le 27 Avril 2010

Pour créer un jar exécutable avec Maven il faut indiquer dans le pom.xml la classe qui contient la méthode main qui sera le point de lancement de l'application.

 

Ceci permettra de créer un manifest correct pour exécuter le jar.

 

Pour cela il faut redéfinir la balise build dans le pom.xml:


<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.2-beta-2</version>
      <executions>
        <execution>
          <id>create-executable-jar</id>
          <phase>package</phase>
          <goals>
            <goal>single</goal>
          </goals>
          <configuration>
            <descriptors>
              <descriptor>src/main/assembly/assembly.xml</descriptor>
            </descriptors>

            <archive>
              <manifest>
                <mainClass>com.over-blog.patatos.App</mainClass>
              </manifest>

            </archive>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>


L'utilisation d'un descriptor "assembly.xml" est optionnelle mais permet d'inclure les dépendances directement dans le jar exécutable.

 

Voici donc le fichier assembly que j'utilise pour inclure les dépendances :


<assembly>
  <id>with-dep</id>
  <formats>
    <format>jar</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <dependencySets>
    <dependencySet>
      <!-- unpack les dépendances avant de les inclures dans le jar final de l'application -->
      <unpack>true</unpack>
      <scope>runtime</scope>
      <useProjectArtifact>false</useProjectArtifact>
    </dependencySet>
  </dependencySets>
  <fileSets>
    <fileSet>
      <directory>${project.build.outputDirectory}</directory>
      <outputDirectory></outputDirectory>
    </fileSet>
  </fileSets>
</assembly>

 

Au final on obtient un jar exécutable qui contient toutes les dépendances ainsi que le manifest indiquant le point de lancement de l'application.

 

On peut donc le lancer directement avec la commande:

 

java -jar Application.jar

 

Voir l'article sur "Comment exécuter un jar"

Rédigé par Bliz

Publié dans #Maven

Repost 0
Commenter cet article