Da un progetto Java Maven ad un jar "eseguibile" che comprende tutto quanto necessario alla sua esecuzione.
Soluzione all'eccezione sguente:
Exception in thread "main" java.lang.NoClassDefFoundError.
Questa exception si verifica quando mancano o non sono reperibili tramite il calsspath i jar necessari all'esecuzione.
Per lo scopo di cui all'oggetto sono necessari due plugin di MAVEN da aggiugnere nel pom.xml nell'elemento "plugins":
Il primo serve a riportare nel percorso indicato nell'element "outputDirectory" tutti i jar necessari:
<plugin>
<!-- Each needed file in the lib folder. -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
Il secondo invece è necessario per creare un jar eseguibile:
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>package.e.classe.del.main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
Eseguire quindi il "clean and build" ed otterrete un folder contenente anche il jar che potrete, ora, eseguire con il classico "java -jar nomeDelJar.jar"
Commenti
Posta un commento