J'ai un projet qui contient un seul module et quelques dépendances .. Je voudrais créer un jar, dans un répertoire séparé, contenant le module compilé. De plus, j'aimerais avoir les dépendances présentes à côté de mon module.
Peu importe la façon dont je modifie le processus "build jar" d'IntelliJ, la sortie de mon module apparaît vide (à part un fichier META-INF).
Voici comment construire un pot avec IntelliJ 10 http://blogs.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/
Fichier -> Structure du projet -> Paramètres du projet -> Artefacts -> Cliquez sur le signe plus vert -> Jar -> À partir de modules avec dépendances ...
Ce qui précède définit le "squelette" sur l'endroit où le pot sera sauvegardé. Pour le construire et le sauvegarder, procédez comme suit:
Extraire dans le pot cible
D'accord
Construire | Construire un artefact
C'est toujours un problème en 2017, j'espère que cela aidera quelqu'un là-bas! J'ai trouvé 2 possibilités pour créer des jar-s de travail sous IntelliJ 2017.2
1. Création d'un artefact à partir d'IntelliJ:
Vous devez changer le répertoire manifeste:
<project folder>\src\main\Java
remplacer "Java" par "ressources"
<project folder>\src\main\resources
Voici à quoi cela devrait ressembler:
Ensuite, vous choisissez les dépendances avec ce que vous voulez insérer dans votre jarre ou près de votre fichier jar
Pour construire votre artefact, créez des artefacts et choisissez "reconstruire". Il créera un dossier "out" avec votre fichier jar et ses dépendances.
2. Utilisation de maven-Assembly-plugin
Ajouter une section de construction au fichier pom
<build>
<plugins>
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<configuration>
<finalName>ServiceCreate</finalName>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.svt.optimoo.App</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
Cette procédure créera le fichier jar sous le dossier "cible"
J'ai récemment eu ce problème et je pense que ces étapes sont faciles à suivre si une solution ou un lien précédent manque de détails.
Comment créer un .jar
en utilisant IntelliJ IDEA 14.1.5:
Il est probablement un peu tardif, mais j’ai réussi à le résoudre de cette façon -> Ouvert avec winrar et supprimer ECLIPSEF.RSA et ECLIPSEF.SF dans le dossier META-INF, en ajoutant "Main-class: main_class_name" (sans .class ") dans MANIFEST.MF. Assurez-vous que vous avez appuyé sur "Entrée" deux fois après la dernière ligne, sinon cela ne fonctionnera pas.
Voici 2 exemples avec le projet maven, étape par étape:
à pom.xml, ajoutez maven-jar-plugin.
<plugin>
<!-- Build an executable JAR -->
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>somePackage.sample</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
capture d'écran: 4. ouvrez la boîte de projet maven en cliquant sur l’icône de recherche et tapez maven,
testez votre jar en utilisant Java -jar
MANIFEST.MF doit se trouver dans votre dossier de ressources et Main.Class doit faire référence à {package} - {nom-classe-qui-contient-classe-principale}
Idée 8.1.3
Jar est ok, puisqu'il y a une sortie compilée dans le répertoire 'output' (projet/sortie/production //)
Je suppose que vous devez exécuter 'make' avant de construire le bocal
pour les dépendances, cochez "show library" et choisissez ce que vous voulez.
Vous voudrez peut-être jeter un coup d'œil à Maven ( http://maven.Apache.org ). Vous pouvez l'utiliser comme processus de construction principal de votre application ou simplement pour effectuer certaines tâches via la boîte de dialogue Modifier les configurations. Le processus de création d'un fichier JAR d'un module au sein de Maven est relativement simple si vous souhaitez inclure toutes les dépendances dans un fichier JAR auto-exécutable qui est également trivial.
Si vous n'avez jamais utilisé Maven, vous souhaitez lire Mieux construire avec Maven .
Avec Maven, vous pouvez utiliser ce plugin:
<build>
<plugins>
<plugin>
<artifactId>maven-Assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>[path you class main]</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>
Mon problème était le suivant: j'ai utilisé Intellij IDEA (essayé différentes versions) + Gradle. Lorsque j'ai compilé le projet et créé le fichier artifacf, comme indiqué dans les réponses ci-dessus, j'ai reçu une erreur: "pas d'attrument manifeste du manifeste ..."
Cette solution a fonctionné pour moi (merci à Thilina Ashen Gamage (voir ci-dessus) pour le tuyau):
Extrait - si vous utilisez des bibliothèques externes et construisez un projet avec Paramètres du projet - Artefacts - Ajouter (+) - Jarre - À partir de modules avec dépendances , probablement à cause d'un bogue du programme, le dossier META-INF contenant le fichier MANIFEST_MF ne pas inclure à jar. Pour éviter cela, créez le fichierVIDEjar.
Paramètres du projet - Artefacts - Ajouter (+) - Jarre - EMPTY JAR . Le dossier META-INF sera ajouté au dossier resources . Ensuite, sélectionnez votre classe principale. Vous verrez la structure de jar suivante: Notez la présence d'un dossier META-INF. Vous pouvez ensuite construire votre projet et créer des artefacts. Cette solution a également fonctionné pour les applications javaFX.
Voici la réponse officielle de IntelliJ IDEA 2018.3 Aide . J'ai essayé et cela a fonctionné.
Construire un fichier JAR à partir d’un module;
Dans le menu principal, choisissez Construire | Construire un artefact.
Dans la liste déroulante, sélectionnez l'artefact souhaité du type JAR . La liste affiche tous les artefacts configurés pour le projet en cours. Pour que tous les artefacts configurés soient construits, choisissez l'option Tout construire option d'artefacts.
Si vous essayez de créer un fichier jar avec kotlin, vous devez créer un dossier src/main/Java
et utiliser ce dossier comme emplacement du dossier META-INF.
Quand j'utilise ces solutions cette erreur vient:
Java -jar xxxxx.jar
aucun attribut manifeste principal, dans xxxxx.jar
et la solution est:
Vous devez changer le répertoire manifeste:
<project folder>\src\main\Java
changer Java en ressources
<project folder>\src\main\resources
Certaines des autres réponses sont inutiles car dès que vous réimporterez le projet IntelliJ IDEA à partir du projet maven, tous les changements seront perdus.
La construction du fichier JAR doit être déclenchée par une configuration d'exécution/de débogage, et non par les paramètres du projet.
Jetbrains a une belle description de la façon dont vous pouvez accomplir cela ici:
https://www.jetbrains.com/help/idea/maven.html
Faites défiler jusqu'à la section intitulée "Configuration des déclencheurs pour les objectifs Maven".
(Le seul inconvénient de leur description est que leurs captures d'écran sont dans le jeu de couleurs noir sur blanc par défaut au lieu du thème super génial darcula. Ugh!)
Donc, en gros, vous ouvrez le panneau "Projets Maven", vous trouvez le projet qui vous intéresse (dans votre cas, le projet qui construit votre bocal), vous trouvez en dessous le but que vous souhaitez exécuter. , (habituellement l'objectif "package" crée des fichiers jar), vous ouvrez le menu contextuel (cliquez avec le bouton droit de la souris sur une machine Windows) et l'option "Exécuter avant d'exécuter/déboguer ..." est disponible sélectionnez et il vous prendra par la main à partir de là. Vraiment facile.
Si vous travaillez sur le projet spring/mvn, vous pouvez utiliser cette commande:
mvn package -DskipTests
Le fichier jar sera enregistré sur la cible cible.
Si vous utilisez des bibliothèques tierces avec votre projet ou si vous rencontrez des problèmes pour créer le fichier MANIFEST.MF correctement, des conflits peuvent survenir lors de l'exécution des fichiers JAR générés à l'aide de
File > Project Structure > Artifacts > '+' > JAR > From modules with dependencies > .....
méthode mentionnée ci-dessus.
Au lieu de cela, je vous suggère de créer un fichier JAR vide et d’ajouter manuellement tous les autres éléments à la racine de sortie. Un article de blog merveilleux pour cette méthode peut être trouvé ici: http://karthicraghupathi.com/2016/07/10/creating-an-executable-jar-in-intellij-idea/ J'ai essayé les étapes mentionnées ici et tout a bien fonctionné pour moi!
J'essayais de construire un bocal à partir d'une application Kotlin multi-module et j'obtenais l'erreur notoire «aucun attribut manifeste principal». La création du répertoire manifeste dans src/main/resources
ne fonctionnait pas non plus.
Au lieu de cela, cela fonctionne lors de la création directement dans src
: src/META-INF/MANIFEST.MF
.