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).

342
demandé sur ripper234 2009-07-04 21:05:35

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

409
répondu EpicPandaForce 2017-06-14 23:51:38

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:

  1. Fichier > Save All.
  2. Exécuter pilote ou de la classe avec une méthode main.
  3. Dossier > Structure Du Projet.
  4. Sélectionnez L'Onglet "Artefacts".
  5. cliquez sur le bouton vert plus près du haut de la fenêtre.
  6. sélectionnez JAR à partir du menu Add drop down. Sélectionnez "à partir de modules avec dépendances"
  7. sélectionnez classe principale.
  8. le bouton radio doit sélectionner" extraire vers le bocal cible."Appuyez sur OK.
  9. cochez la case "construire sur la marque "
  10. Appuyez sur appliquer et OK.
  11. dans le menu principal, sélectionnez le menu déroulant construire.
  12. sélectionnez l'option build artifacts.
117
répondu user5442490 2015-12-19 17:09:45

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:

File menu

  • créer un nouvel artefact:

Create a new artifact

  • sélectionnez la classe principale et assurez-vous de changer le dossier du Manifeste:

enter image description here

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:

correct way for new manifest

  • 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.

enter image description here

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:

Create a new run/debug configuration:

  • choisir l'application:

Choose application

  • remplir le formulaire
  • ajouter le "montage: simple" Maven but après construction à exécuter en dernier

enter image description here

Final setup

  • Enregistrer, puis l'exécuter

enter image description here

cette procédure va créer le fichier jar sous le dossier "cible

JAR file location

95
répondu Zsolt Tolvaly 2018-09-15 08:45:23

pour ceux qui bénéficient des images comme moi:

Fichier - > Structure Du Projet

enter image description here

enter image description here

enter image description here

enter image description here

27
répondu Crt 2017-05-08 17:40:33

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.

5
répondu Baka 2015-08-06 09:58:21

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.

1
répondu Vugluskr 2009-07-04 21:15:17

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 .

1
répondu Gary Rowe 2014-10-30 09:16:54

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>
1
répondu fede beron 2017-03-07 09:29:57

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!

0
répondu Thilina Ashen Gamage 2017-04-08 19:10:00

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.

0
répondu Mike Nakis 2018-03-25 17:53:19

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.

0
répondu Chris 2018-07-07 13:57:41

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: -)

-3
répondu Brian 2010-06-03 07:41:38