web-dev-qa-db-fra.com

Qu'est-ce que org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER et comment puis-je le faire fonctionner dans IntelliJ?

J'ai une base de code Java qui a été écrite avec Eclipse et que j'essaie de travailler dans IntelliJ. La base de code comprend environ 20 packages Java construits côte à côte en tant que projets distincts. (Il existe une vingtaine de répertoires, chacun contenant un fichier .classpath et un fichier .project.) Ils ont des dépendances réciproques. Vraisemblablement, tout se construit bien dans Eclipse.

J'ai demandé à IntelliJ de les importer depuis le format de construction Eclipse. Cela semblait généralement fonctionner, sauf que Project Settings -> Modules -> Dependencies montre que de nombreux projets ont une dépendance non résolue sur org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER. Cela semble provenir des entrées suivantes dans les fichiers .classpath:

<classpathentry kind="con" path="org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="org.Eclipse.jst.component.nondependency" value=""/>
    </attributes>
</classpathentry>

Les packages avec cette dépendance ne construisent pas dans IntelliJ car ils ne peuvent pas résoudre les dépendances sur les autres packages.

Je soupçonne que org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER est une supercherie spécifique à Eclipse qui ne se traduit pas par un IDE différent, mais je ne peux pas comprendre exactement ce qui se passe ici.

Qu'est-ce que org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER? Dois-je faire quelque chose de spécial dans un environnement de construction qui l'utilise pour le faire fonctionner en dehors d'Eclipse?

IntelliJ Ultimate 2016.1.2, Java 1.8.0_91, OS X 10.11.5


J'ai contourné ce problème en allant dans Paramètres du projet-> Modules et en ajoutant manuellement des dépendances de modules entre mes différents projets jusqu'à ce que tout soit construit. Fastidieux mais efficace.

Je laisse cependant cette question ici, car une courte définition de org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER m'aurait quand même été utile.

14
W.P. McNeill

Intro

Le plugin IntelliJ IDEA Maven-2 intègre Maven-2 dans IntelliJ IDEA.

D'abord,

 enter image description here

Deuxièmement,

 enter image description here

Troisième,

 enter image description here

Semblable au plugin Ant, le plugin Maven-2 permet l'exécution de buts (ou de phases) et redirige la sortie (avec la surbrillance des erreurs) vers la fenêtre de message.

Installation

Disponible pour IDEA 6.0 (jusqu'à la version 1.1, également pour IDEA 5.0) via le gestionnaire de plug-ins intégré IDEA ou directement à partir de {{ http: // plugins. intellij.net/plugin/?id=1166 }}.

Si vous avez téléchargé le plugin, extrayez simplement le contenu de l’archive binaire dans votre répertoire de plug-ins IDEA. Le dossier extrait (idea-maven-plugin) contient un autre dossier lib, où Les JAR résident.

Usage

En supposant que vous ayez spécifié les variables d’environnement Java_HOME et M2_HOME, le plug-in doit être prêt à être exécuté sans autre configuration. Si Java_HOME n’est pas défini, le plug-in utilise le JDK IDEAinterne.

Si M2_HOME n'est pas défini, vous devez spécifier le répertoire de base de Maven-2 dans les boîtes de dialogue de configuration. Ceci est une modification à partir de la version 1.1 du plugin.

Avant la version 1.1, Maven était appelé via le script de démarrage fourni avec l'installation Maven normale. Pour obtenir un meilleur accès au processus Maven en cours d'exécution, Maven est maintenant appelé directement en démarrant un processus Java. Cela permet par exemple de mettre fin au processus Maven en cours d'exécution par l'utilisateur.

La configuration peut être effectuée de deux manières:

Soit via IDE Paramètres ou les paramètres du projet. Les paramètres du projet ont toujours préséance sur les paramètres de l'application!

Le plugin ne fonctionnera pas avec IDEA versions antérieures à 6.0! Le plugin a été testé sous Windows et Linux. Il n'a pas été testé sous Mac OS X.

Lien de ressource:

  1. Maven 2 Integration
  2. Importer des dépendances Maven dans IntelliJ IDEA
2
SkyWalker

J'ai mis au point une solution qui fonctionne pour moi, mais la prime reste ouverte (car je ne peux pas la fermer: P) et ira à quelqu'un qui peut fournir une explication plus détaillée.

La solution: exécutez mvn Eclipse:clean et mvn Eclipse:eclipse. Cela amène maven à effacer le fichier .classpath et à le reconstruire à partir du fichier pom.xml. Assez mystérieusement, il ne contenait plus la référence redoutée à org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER.

C'est peut-être une balise/variable obsolète dans Eclipse.

0
Daniel Patrick