web-dev-qa-db-fra.com

IntelliJ - Convertit un projet / module Java en un projet / module Maven

J'ai un projet sur Bitbucket. Seules les sources sont validées. Pour récupérer le projet sur une nouvelle machine, j'ai utilisé Version Control> Checkout from Version Control depuis IntelliJ.

Il me demande ensuite si je souhaite créer un nouveau projet à partir de cette source, auquel je réponds Oui. Jusqu'ici tout va bien. Il crée pour moi un joli petit projet Java composé d'un seul module.

Cependant, mon objectif en intégrant ce projet à IntelliJ était de le transformer en un projet Maven. Je ne trouve aucune option qui me permette de le faire!

Existe-t-il un moyen pour qu'IntelliJ génère simplement un fichier pom.xml vide de base, avec un nom, un identifiant artificiel et un référentiel? Ou, existe-t-il un moyen d'importer le projet en tant que projet Maven? (Chaque fois que j'essaie de créer un projet à partir d'une source existante, cela ne me donne que l'option d'un projet Java.)

389
Neil Traft

Cliquez avec le bouton droit sur le module, sélectionnez "Ajouter le support du framework ...", puis cochez la technologie "Maven".

(Ceci crée également un pom.xml à modifier.)

Si vous voulez dire ajouter des éléments de référentiel source, je pense que vous devez le faire manuellement - pas sûr.

Pre-IntelliJ 13 cela ne convertira pas le projet en Maven Standard Directory Layout , 13+ il le fera.

743
Dave Newton

Un visuel pour ceux qui en bénéficient.

enter image description here

Après avoir cliqué avec le bouton droit sur le nom du projet ("test" dans cet exemple), sélectionnez "Ajouter le support du framework" et cochez l'option "Maven".

67
Crt
  1. Ouvrez 'Maven projects' (onglet à droite).
  2. Utilisez 'Ajouter des projets Maven'
  3. Trouvez votre pom.xml
29
FazoM

Je tiens à ajouter un indice important, à savoir que la conversion d'un projet de ce type peut avoir des effets secondaires notables lorsque vous avez un projet plus volumineux. Cela est dû au fait qu'Intellij Idea (2017) utilise certains paramètres importants uniquement à partir du fichier pom.xml, ce qui peut entraîner une certaine confusion. Les sections suivantes sont donc au moins affectées:

  1. Les paramètres d'annotation sont modifiés pour les modules
  2. Le chemin de sortie du compilateur est modifié pour les modules
  3. Les paramètres de ressources sont totalement ignorés et ne proviennent que de pom.xml
  4. Les dépendances de modules sont foirées et doivent être vérifiées
  5. Les paramètres de langue/codage sont modifiés pour les modules

Tous ces points doivent être revus et ajustés, mais après cela, cela fonctionne à merveille.

De plus, malheureusement, il n’ya pas suffisamment de modèle pom.xml créé, j’ai ajouté un exemple qui pourrait aider à résoudre la plupart des problèmes.

<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>Name</groupId>
<artifactId>Artifact</artifactId>
<version>4.0</version>
<properties>
    <!-- Generic properties -->
    <Java.version>1.8</Java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<dependencies>
    <!--All dependencies to put here, including module dependencies-->
</dependencies>
<build>
    <resources>
        <resource>
            <directory>${project.basedir}/src/main/Java</directory>
            <excludes>
                <exclude>**/*.Java</exclude>
            </excludes>
        </resource>
        <resource>
            <directory>${project.basedir}/src/main/resources</directory>
            <includes>
                <include>*</include>
            </includes>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
                <annotationProcessors/>
                <source>${Java.version}</source>
                <target>${Java.version}</target>
            </configuration>
        </plugin>
    </plugins>
</build>
5
Thomas

Cela a résolu le problème pour moi: Ouvrez l'onglet Projets maven à droite. Ajoutez le pom s'il n'est pas encore présent, puis cliquez sur Actualiser en haut à gauche de l'onglet.

2
ZoltanT

J'avais un scénario différent, mais j'ai quand même atterri sur cette réponse.
J'avais importé mon dossier de projet racine contenant plusieurs projets Maven, mais aussi d'autres éléments utilisés dans ce projet.
IntelliJ a reconnu les fichiers Java, mais n'a pas résolu les dépendances Maven.

J'ai corrigé cela en effectuant un clic droit sur chaque pom puis "Ajouter en tant que projet maven"

2
John Blackwell

J'ai résolu le même problème en procédant comme suit:

  1. Fichier> Fermer le projet

  2. Projet d'importation

  3. Sélectionnez votre projet via le popup du fichier système

  4. Cochez la case d'option "Importer un projet à partir d'un modèle externe" et sélectionnez l'entrée Maven.

  5. Et quelques boutons Suivant (sélectionnez JDK, ...)

Ensuite, le projet sera importé en tant que module Maven.

1
Walid Ammou

Le moyen le plus simple consiste à ajouter directement le projet en tant que projet Maven. Pour ce faire, dans l'explorateur de projet à gauche, cliquez avec le bouton droit de la souris sur le fichier POM du projet. Vers le bas du menu contextuel, une option appelée "Ajouter comme projet Maven" s'affiche. Cliquez dessus. Cela convertira automatiquement le projet en projet Maven

0
Tester Man