Comment construire des pots D'IntelliJ correctement?
j'ai un projet qui contient un seul module, et quelques dépendances. J'aimerais créer un bocal, dans un répertoire distinct, qui contient le module compilé. De plus, j'aimerais que les dépendances soient présentes à côté de mon module.
peu importe comment je tourne le processus" build jar " D'IntelliJ, la sortie de mon module semble vide (à part un fichier META-INF).
12 réponses
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 - > artéfacts - > cliquez sur le signe vert plus - > Jar - > à partir de modules avec dépendances...
ce qui précède place le" squelette " à l'endroit où le bocal sera sauvé. Pour le construire et le sauvegarder, faites ce qui suit:
Extrait de la cible Jar
OK
Construire | Construire Artefact
j'ai récemment eu ce problème et je pense que ces étapes sont faciles à suivre si n'importe quelle solution ou lien préalable est Détail manquant.
comment créer un .jar
en utilisant IntelliJ idée 14.1.5:
- Fichier > Save All.
- Exécuter pilote ou de la classe avec une méthode main.
- Dossier > Structure Du Projet.
- Sélectionnez L'Onglet "Artefacts".
- cliquez sur le bouton vert plus près du haut de la fenêtre.
- sélectionnez JAR à partir du menu Add drop down. Sélectionnez "à partir de modules avec dépendances"
- sélectionnez classe principale.
- le bouton radio doit sélectionner" extraire vers le bocal cible."Appuyez sur OK.
- cochez la case "construire sur la marque "
- Appuyez sur appliquer et OK.
- dans le menu principal, sélectionnez le menu déroulant construire.
- sélectionnez l'option build artifacts.
C'est toujours un problème en 2017, j'espère que ça aidera quelqu'un là-bas! J'ai trouvé 2 possibilités de créer Jar-s de travail sous IntelliJ 2017.2
1. Création artefact D'IntelliJ:
- aller à la structure du projet:
- créer un nouvel artefact:
- sélectionnez la classe principale et assurez-vous de changer le dossier du Manifeste:
vous devez changer le répertoire du Manifeste:
<project folder>\src\main\java
remplacer "java" par" resources "
<project folder>\src\main\resources
voilà à quoi ça devrait ressembler comme:
-
ensuite, vous choisissez les dépendances ce que vous voulez être emballé dans votre pot, ou près de votre fichier jar
-
Pour construire votre artefact allez construire des artefacts et choisissez "reconstruire". Il va créer un "dossier" avec votre fichier jar et ses dépendances.
2. En utilisant maven-assembly-plugin
ajouter section build 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>
- créer une nouvelle configuration d'exécution / débogage:
- choisir l'application:
- remplir le formulaire
- ajouter le "montage: simple" Maven but après construction à exécuter en dernier
- Enregistrer, puis l'exécuter
cette procédure va créer le fichier jar sous le dossier "cible
il est probablement un peu tard, mais j'ai réussi à le résoudre de cette façon - > ouvrir avec winrar et supprimer ECLIPSEF.RSA et ECLIPSEF.SF dans le dossier META-INF, de plus mettez " Main-class: main_class_name "(sans".class") in MANIFEST.MF. Assurez-vous que vous avez appuyé sur "Entrée" deux fois après la dernière ligne, sinon ça ne marchera pas.
idée 8.1.3
Pot est ok, car il est compilé sortie en 'output' répertoire (projet//production//)
je suppose que vous devez exécuter "make" avant de construire jar
pour les dépendances, cochez "Afficher la bibliothèque" et choisissez ce que vous voulez.
vous pourriez vouloir jeter un oeil à Maven ( http://maven.apache.org ). Vous pouvez l'utiliser soit comme processus de construction principal pour votre application, soit simplement pour effectuer certaines tâches à travers la boîte de dialogue Modifier les Configurations. Le processus de création d'un JAR d'un module dans Maven est assez trivial, si vous voulez qu'il inclue toutes les dépendances dans un JAR auto-exécutable qui est aussi trivial.
si vous n'avez jamais utilisé Maven auparavant, alors vous voulez lire de meilleures constructions 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>
si vous utilisez des bibliothèques tierces avec votre projet ou si vous avez des problèmes avec la création de MANIFEST.Fichier MF correctement, il peut y avoir des conflits lors de l'exécution de fichiers JAR générés en utilisant
File > Project Structure > Artifacts > '+' > JAR > From modules with dependencies > .....
méthode mentionnée ci-dessus.
à la place, je vous suggère de créer un bocal vide et d'ajouter tous les autres éléments à la racine de sortie manuellement. Un merveilleux article de blog 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 ci de là et tout a bien fonctionné pour moi!
certaines des autres réponses sont inutiles car dès que vous réimportez le projet IntelliJ du projet maven, tous les changements seront perdus.
la construction du jar doit être déclenchée par une configuration d'exécution/Débogage, et non par les paramètres du projet.
Jetbrains a une belle description de la façon dont vous pouvez accomplir ceci ici:
https://www.jetbrains.com/help/idea/maven.html
Faites défiler vers le bas jusqu'à la section intitulée"Configuration des triggers for Maven goals".
(le seul inconvénient de leur description est que leurs screenshots sont dans le schéma de couleur noir sur blanc par défaut au lieu du super-impressionnant thème darcula. Pouah!)
donc, fondamentalement, ce que vous faites est que vous ouvrez le panneau "Maven Projects", vous trouvez le projet d'intérêt, (dans votre cas, le projet qui construit votre pot,) en dessous de lui vous trouver le maven objectif que vous souhaitez exécuter, (généralement le "package" objectif crée des pots,) vous ouvrez le menu contextuel (clic-droit sur une machine Windows,) et il y aura un "avant d'Exécuter Exécuter/Déboguer..."option que vous pouvez sélectionner et il vous prendra par la main à partir de là. Vraiment facile.
dans le cas où vous essayez de construire un bocal avec kotlin, vous devez créer un dossier src/main/java
et utiliser ce dossier comme emplacement pour le dossier META-INF.
fourmi et le Maven sont largement utilisés. Je préfère Ant, je pense qu'il est plus léger et vous le développeur êtes plus en contrôle. Certains suggéreraient que c'est son inconvénient: -)