430 votes

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

J'ai un projet sur Bitbucket. Seules les sources sont livrées. Pour récupérer le projet sur une nouvelle machine, j'ai utilisé Contrôle de version > Extraire du contrôle de version depuis IntelliJ.

Il me demande ensuite si je souhaite créer un nouveau projet à partir de cette source, ce à quoi 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 transférant ce projet dans IntelliJ était de le transformer en un projet Maven. Je ne trouve nulle part une option qui me permette de le faire !

Existe-t-il un moyen pour qu'IntelliJ génère simplement un pom.xml vide de base pour moi, avec un nom, un artifactId et un dépôt ? 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, il ne me donne que l'option d'un projet Java).

791voto

Dave Newton Points 93112

Faites un clic droit sur le module, sélectionnez "Add framework support...", et cochez la technologie "Maven".

enter image description here

enter image description here

(Cela crée également un pom.xml pour que vous puissiez les modifier).

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

Pré-IntelliJ 13, cela ne convertira pas le projet vers le système de gestion de l'information. Présentation du répertoire standard de Maven 13+, il le fera.

3 votes

Exactement ce que je cherchais ! Et oui, je voulais ajouter l'élément de dépôt "Central" par défaut de maven2. Mais je peux l'ajouter moi-même, ce n'est pas un problème.

1 votes

Cool. Mais vous ne devriez pas avoir à ajouter cela ; c'est déjà la valeur par défaut.

50 votes

Que se passe-t-il si je n'ai pas cette option ?

82voto

Crt Points 2353

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

enter image description here

Après avoir fait un clic droit sur le nom du projet ("test" dans cet exemple), sélectionnez "Add framework support" et cochez l'option "Maven".

34voto

Fazovsky Points 1071
  1. Ouvrez "Maven projects" (onglet sur le côté droit).
  2. Utilisez "Ajouter des projets Maven".
  3. Trouvez votre pom.xml

1 votes

Lorsque j'avais une URL git de directeur parent avec de nombreux sous-projets, les sous-projets n'étaient pas reconnus comme Maven. Cette réponse m'a aidé. Pour être clair, cette fonctionnalité est disponible sur la fenêtre de l'outil Maven.

0 votes

Cette réponse m'a aidé à réassocier un projet Gradle à Maven. Il fallait juste le dissocier (utiliser le signe moins) dans le menu analogue de Gradle.

8voto

Indrajeet Gour Points 982

Il suffit de suivre les étapes :

  1. Cliquez avec le bouton droit de la souris sur n'importe quel module pox.xml et choisissez ensuite "Add as Maven Project".

enter image description here

  1. Ensuite pour le vérifier, allez dans l'onglet maven, vous verrez le projet avec tous les objectifs maven que vous pouvez utiliser :

enter image description here

7voto

Thomas Points 766

Je tiens à ajouter une remarque importante : la conversion d'un projet comme celui-ci peut avoir des effets secondaires qui sont perceptibles lorsque vous avez un projet plus important. Cela est dû au fait qu'Intellij Idea (2017) prend certains paramètres importants uniquement à partir du pom.xml, ce qui peut conduire à une certaine confusion, les sections suivantes sont affectées au moins :

  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 des ressources sont totalement ignorés et uniquement pris dans le fichier pom.xml.
  4. Les dépendances des modules sont mal gérées et doivent être vérifiées.
  5. Les paramètres de langue et d'encodage sont modifiés pour les modules.

Tous ces points doivent être revus et ajustés, mais après cela, tout fonctionne comme sur des roulettes.

De plus, il n'y a malheureusement 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>

Editer 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 concernant la structure racine du contenu.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X