J'utilise Intellij Java 2016.2.2 et Maven pour créer une application console très simple Java.
Je veux ajouter une bibliothèque externe, donc j'ajoute ma dépendance dans Maven comme ceci:
<dependency>
<groupId>jline</groupId>
<artifactId>jline</artifactId>
<version>2.12</version>
</dependency>
Cela fonctionne très bien quand je l'exécute dans l'EDI, mais pas dans une console externe (j'ai l'erreur suivante: Java.lang.NoClassDefFoundError).
J'ai vérifié et pour une raison quelconque, le JAR externe n'est pas ajouté dans le JAR que je viens de générer. J'ai également essayé beaucoup de choses dans "Fichier -> Structure du projet", mais ne fonctionnait toujours pas ...
Je veux juste construire mon JAR avec mes dépendances, donc je peux simplement exécuter mon application dans une console en utilisant:
Java -jar myproject.jar
Comment puis je faire ça? Merci de votre aide!
J'ai finalement réussi à générer ce JAR avec Intellij Java, voici comment je fais:
MODIFIER
Une méthode plus efficace (et plus simple) consiste à ajouter les lignes suivantes dans le fichier pom.xml:
<build>
<plugins>
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>your.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-Assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
puis utilisez les commandes maven "clean" et "package".
Les 3 dernières étapes ci-dessus (à propos de MANIFEST.MF) semblent toujours obligatoires.
D'accord, vous voulez donc créer un "gros pot" (parfois appelé Assembly), qui contient toutes ses propres dépendances (généralement, les dépendances sont externes).
Vous devez utiliser un plugin Maven pour cela. Voici un exemple de configuration du plugin d'assemblage jar-with-dependencies :
<project>
...
<build>
...
<plugins>
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
...
</project>
puis lancez simplement
mvn package