web-dev-qa-db-fra.com

L'entrée du chemin de classe org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER ne sera pas exportée

Je reçois cet avertissement dans Eclipse:

L'entrée de chemin de classe org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER ne sera ni exportée ni publiée. Exécution ClassNotFoundExceptions peut entraîner

Après avoir cherché, j’ai trouvé que j’avais besoin d’une exportation corrigée. Je l'ai fait.

Eclipse Java Build Path properties

Mais cet avertissement persiste! Que peut-on faire de plus pour le réparer? Merci.

60
user710818

J'avais essayé les deux options, mais seule cette dernière est ce dont vous avez besoin: 

  • Marquez l'entrée de chemin de classe brute associée en tant que dépendance de publication/exportation
  • Exclure l'entrée de chemin de classe brute associée de l'ensemble des dépendances potentielles Publish/export

Si vous exportez la dépendance, l'actualisation de la configuration du projet via Maven -> Update Project Configuration menu contextuel entraînera le retour de l'avertissement. Dans ce cas, vous devez éditer le fichier .classpath à la main:

<classpathentry kind="con" exported="true" path="org.maven.ide.Eclipse.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="org.Eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>
</classpathentry>

Supprimez simplement l'attribut exported="true" et confirmez en actualisant la configuration du projet.

25
dcompiled

Vous pouvez cliquer avec le bouton droit sur l’avertissement, choisir Quickfix, puis choisir l’une des options suivantes:

  • Marquez l'entrée de chemin de classe brute associée en tant que dépendance de publication/exportation.
  • Excluez l'entrée de chemin de classe brute associée de l'ensemble des dépendances potentielles de publication/exportation.

Comme Eclipse ne publiera/exportera pas le projet, vous pouvez l'exclure en toute sécurité. Mais de toute façon cela ne fait aucune différence

Captures d'écran étape par étape:
http://publib.boulder.ibm.com/infocenter/radhelp/v8/index.jsp?topic=/com.ibm.javaee.doc/topics/tlooseclasspath.html

33
Alin Stoian

J'ai eu le même problème; il disparaît après avoir inclus 

<packaging>war</packaging> 

dans le pom. Il n'y avait pas d'emballage du tout.

12
Frank Rünagel

http://geertschuring.wordpress.com/2009/03/05/why-the-maven2_classpath_container-will-not-be-exported-or-published/

À certaines occasions, Eclipse vous présentera l'avertissement suivant:

Classpath entry org.maven.ide.Eclipse.MAVEN2_CLASSPATH_CONTAINER will not be exported or published. Runtime ClassNotFoundExceptions may result.

Alors résolvez ceci, procédez comme suit:

Open the properties of the project that generates this warning
Click on “Java Build Path”
Click on the tab “Order and Export”
Enable “Maven Dependencies”
Click on “Ok”
Open the “Problems” view
Select the warning we are trying to solve, and press “Ctrl-1″
Click on “Ok”

Le problème est maintenant résolu. Il peut s'écouler un certain temps avant que l'avertissement disparaisse, car le projet doit être reconstruit avant de disparaître.

9
gooooooogling

Faites simplement un clic droit sur l'avertissement et effectuez une solution rapide

 enter image description here

Vous pouvez ensuite examiner les modifications du fichier .classpath à partir du contrôle de source

 enter image description here

4
Fangming

Je n'ai pas pu résoudre le problème avec le correctif rapide dans Eclipse Luna. Le problème a disparu après la suppression de la facette de projet "Module Web dynamique". Dans Windows -> Préférences -> Facettes du projet.

enter image description here

P.S. Packaging as War a également résolu le problème, mais il était supposé être un JAR et je me demandais pourquoi certains projets fonctionnaient correctement et d'autres non. 

Et au fait, l'avertissement était réel. Cela provoquait une exception ClassNotFoundExceptions sur le serveur qui le rendait inutilisable lorsque d'autres projets le mentionnaient.

4
borjab

La plupart des réponses, y compris celle actuellement acceptée, ne fournissent qu'une solution temporaire à ce problème: chaque fois que j'ai choisi Maven> Mettre à jour le projet… et en laissant l'option 'Mettre à jour la configuration du projet à partir de pom.xml', l'avertissement revenait .

Cependant, après avoir installé m2e-wtp - Maven Integration for WTP dans Eclipse 4.5 (Mars) et émis Update Project… de nouveau, tout en laissant l'option sélectionnée, l'avertissement (et l'erreur résultante) disparaissaient.

1
Marcel Korpel

Aucune des réponses n'a aidé dans mon cas. Chaque fois que je mets à jour le projet, m2e supprimera l’entrée du fichier .classpath qui désactive les avertissements.

J'ai maintenant déposé un rapport de bogue: https://bugs.Eclipse.org/bugs/show_bug.cgi?id=537401

1
Aaron Digulla

J'ai un moyen simple de résoudre ce problème:

  1. Supprimez le projet de votre Eclipse.
  2. Dans l'espace de travail où se trouve le projet.
  3. Supprimer les éléments sélectionnés dans l'image suivante. Laissez simplement src et pom.xml.

     enter image description here

  4. Réimportez le projet dans votre Eclipse.

1
Moco

En utilisant Eclipse Photon, la configuration ci-dessous a résolu le problème pour moi: Window > Preferences > Maven > Java EE Integration > Enable Java EE Configuration

Notez que j'ai désactivé cette option avant de recevoir l'avertissement Classpath entry org.Eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER will not be exported

Toutes les autres options peuvent ne pas être cochées si vous n'en avez pas besoin.

L'avertissement ne réapparaît pas après une mise à jour Maven.

0
Remi Patriarche

Je suis également tombé sur ce problème! une fois dans le 

Dépendances Maven

Groupe et un autre sous la forme de 

M2_REPO/...

Vous devez enlever le dernier dans la 

Propriétés -> Chemin d'accès à Java Buil -> Bibliothèques

pour que l'erreur disparaisse!

0
Biggg Jimmm

J'ai eu le même problème après la mise à jour de mon JDK dans le projet et je l'ai résolu en remplaçant mon fichier .classpath par le précédent.

    <attributes>
        <attribute name="maven.pomderived" value="true"/>
        <attribute name="org.Eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
    </attributes>

La deuxième ligne était absente du code ci-dessus

<classpathentry kind="con" path="org.Eclipse.jdt.launching.JRE_CONTAINER"/>

Cette ligne manquait

    <classpathentry kind="con" path="org.Eclipse.jdt.launching.JRE_CONTAINER/org.Eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
    <attributes>
        <attribute name="owner.project.facets" value="Java"/>
    </attributes>
</classpathentry>

Ces lignes ont été ajoutées, je les ai donc supprimées manuellement et tout a fonctionné à nouveau.

0
Gaurav Matta

Ajout au pom.xml:

<properties>
    <Java.version>1.8</Java.version>
</properties>

m'a aidé dans ce cas et aussi avec Dynamic Web Module et d'autres problèmes.

0
janap