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

398

J'ai un projet sur Bitbucket. Seules les sources sont engagé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. Cela crée un joli petit projet Java pour moi, composé d'un seul module.

Cependant, mon objectif en intégrant ce projet dans IntelliJ était de le transformer en projet Maven. Je ne trouve aucune option où que ce soit qui me permette de le faire!

Existe-t-il un moyen pour IntelliJ de simplement générer un pom.xml vide de base pour moi, avec un nom et un artifactId et un référentiel? Ou, existe-t-il un moyen d'importer le projet en tant que projet Maven en premier lieu? (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.)

Neil Traft
la source

Réponses:

760

Faites un clic droit sur le module, sélectionnez "Ajouter un support de framework ...", et vérifiez la technologie "Maven".

(Cela crée également un pom.xmlpour vous de modifier.)

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

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

Dave Newton
la source
3
Exactement ce que je cherchais! Et oui, je voulais ajouter l'élément de référentiel par défaut maven2 "Central". Mais je peux ajouter cela moi-même, ce n'est pas grave.
Neil Traft,
1
Cool. Mais vous ne devriez pas avoir à ajouter cela; c'est déjà la valeur par défaut.
Dave Newton
46
Que se passe-t-il si je n'ai pas cette option?
2
quels "plugins"? J'ai 2 prises Maven (fournies par défaut avec IntelliJ). Toujours pas d'option "Maven" dans Add Frameworks
Nick
1
désolé d'avoir relancé cet ancien post mais existe-t-il un moyen automatique de mettre les dépendances jsf dans le pom? Le pom est créé mais il est vide, je voudrais avoir toutes les dépendances appropriées d'un projet jsf à l'intérieur du pom.
MrSir
76

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

entrez la description de l'image ici

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

Crt
la source
Merci beaucoup .....
smack cherry
31
  1. Ouvrez 'Projets Maven' (onglet à droite).
  2. Utilisez «Ajouter des projets Maven»
  3. Trouvez votre pom.xml
FazoM
la source
1
Lorsque j'avais un parent directeur git URL lorsque de nombreux sous-projets, les sous-projets n'étaient pas reconnus comme Maven. Cette réponse a aidé. Pour être clair, cette fonctionnalité est disponible dans la fenêtre de l'outil Maven.
Sylvester
Cette réponse m'a aidé à réassocier un projet Gradle à Maven. Juste besoin de le dissocier (utilisez le signe moins) dans le menu Gradle analogue.
vphilipnyc
6

Je veux ajouter l'indication importante que la conversion d'un projet comme celui-ci peut avoir des effets secondaires qui sont perceptibles lorsque vous avez un projet plus grand. Cela est dû au fait qu'Intellij Idea (2017) ne prend certains paramètres importants que du pom.xml, ce qui peut entraîner une certaine confusion, les sections suivantes sont 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 uniquement extraits de pom.xml
  4. Les dépendances du module sont gâchées et doivent être vérifiées
  5. Les paramètres de langue / d'encodage sont modifiés pour les modules

Tous ces points doivent être revus et ajustés, mais après cela, cela fonctionne comme un charme.

De plus, malheureusement, il n'y a pas de modèle pom.xml suffisant 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>
    <directory>${project.basedir}/target</directory>
    <outputDirectory>${project.build.directory}/classes</outputDirectory>
    <testOutputDirectory>${project.build.directory}/test-classes</testOutputDirectory>
    <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
    <testSourceDirectory> ${project.basedir}/src/test/java</testSourceDirectory>

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

Modifier 2019:

  • Ajout d'une analyse récursive des ressources
  • Ajout d'une spécification de répertoire qui pourrait être importante pour éviter la confusion d'IDEA en recardant la structure racine du contenu
Thomas
la source
3

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"

John Blackwell
la source
3

J'ai résolu ce même problème en effectuant les étapes ci-dessous:

  1. Fichier> Fermer le projet

  2. Importer un projet

  3. Sélectionnez votre projet via la fenêtre contextuelle du fichier système

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

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

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

Walid Ammou
la source
2

Cela m'a corrigé: Ouvrez l'onglet des projets maven sur la droite. Ajoutez le pom s'il n'est pas encore présent, puis cliquez sur Actualiser en haut à gauche de l'onglet.

ZoltanT
la source
0

Le moyen le plus simple consiste à ajouter directement le projet en tant que projet Maven. Pour ce faire, dans l'explorateur de projet à gauche, faites un clic droit sur le fichier POM du projet, vers le bas du menu contextuel, vous verrez une option appelée 'Ajouter comme projet Maven', cliquez dessus. Cela convertira automatiquement le projet en projet Maven

Testilla
la source