Includere le librerie dentro al JAR con Maven

Includere le librerie dentro al JAR con Maven

La pratica di includere le librerie dentro JAR, non è una pratica che mi piace molto.

Però ci sono dei casi in cui può risultare comodo, se non obbligatorio.

Se usiamo Maven, è molto facile eseguire questa operazione, usando un plugin apposito: maven-assembly-plugin.

Basta includere questo dentro al nostro pom.xml:

    <build>
        <plugins>
            ............................
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <mainClass>com.cimoda.rest.Main</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
                <executions>
                    <execution>
                        <id>make-my-jar-with-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            ............................
      </plugins>
</build>

A questo punto compilate il programma, e andate a vedere nella directory di creazione del JAR.

Enjoy!