74 votes

L'entrée classpath org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER ne sera pas exportée.

J'obtiens cet avertissement dans Eclipse :

L'entrée classpath org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER ne sera pas exportée ou publiée. Il peut en résulter des exceptions ClassNotFound au moment de l'exécution.

Après avoir cherché, j'ai trouvé que je devais réparer l'exportation. Je l'ai fait.

Eclipse Java Build Path properties

Mais cet avertissement persiste ! Que peut-on faire d'autre pour le corriger ? Merci.

0 votes

À quel moment de l'exécution obtenez-vous les exceptions ? Où voulez-vous que cette variable soit "exportée ou publiée" ?

3 votes

@Ryan ce n'est pas nous, c'est Eclipse. stackoverflow.com/questions/3653785/

37voto

Alin Stoian Points 487

Vous pouvez cliquer avec le bouton droit de la souris sur l'avertissement, choisir "quickfix" et choisir l'une des options suivantes :

  • Marquez l'entrée du classpath brut associé comme une dépendance de publication/exportation.
  • Exclure l'entrée du classpath brut associé de l'ensemble des dépendances potentielles de publication/exportation.

Comme vous n'aurez pas eclipse publiant/exportant le projet, il est sûr de l'exclure. 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

2 votes

Ensuite, n'oubliez pas d'exécuter les validations (clic droit sur le projet - Valider).

29voto

dcompiled Points 1578

J'ai essayé les deux options mais seule la dernière est ce dont vous avez besoin :

  • Marquer l'entrée du classpath brut associé comme une dépendance de publication/exportation dépendance
  • Exclure l'entrée du classpath brut associée de l'ensemble des dépendances potentielles de l'application dépendances de publication/exportation

Si vous exportez la dépendance, le rafraîchissement de la configuration du projet via Maven -> Mise à jour de la configuration du projet le menu contextuel fera revenir l'avertissement. Dans ce cas, vous devez modifier 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>

La suppression simple a l'attribut exported="true" et confirmez en rafraîchissant la configuration du projet.

4 votes

Depuis la version 3.7, org.maven.ide.eclipse a changé pour org.eclipse.m2e.

1 votes

Avec la version actuelle de m2e (1.4.0.20130601-317) Projet de mise à jour n'écrase pas vos modifications et vous pouvez donc utiliser la correction rapide (voir aussi : stackoverflow.com/questions/3653785/ )

3 votes

@MartinTrummer, j'ai la même version, et elle supprime effectivement les marqueurs de "non-dépendance" fixés rapidement lors de la mise à jour.

16voto

Frank Rünagel Points 91

J'ai eu le même problème ; il disparaît après avoir inclus les éléments suivants

<packaging>war</packaging> 

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

0 votes

Webfragments devrait être jar cependant.

0 votes

@Frank Rünagel - cette solution a fonctionné pour moi ! Merci.

10voto

gooooooogling Points 61

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

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

Pour résoudre ce problème, 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 ne disparaisse, car le projet doit être reconstruit avant qu'il ne disparaisse.

0 votes

Cela fonctionne sous Windows. Sous Linux cependant, Ctrl+1 ne fait rien.

-5voto

I.Cougil Points 327

C'est le problème typique des projets maven configurés dans Eclipse dont la configuration est modifiée ou qui sont sauvegardés de manière inappropriée.

Normalement, je modifie mon fichier .classpath et je vérifie les références pour le chemin de construction, etc.

Donc dans votre cas, je pense que vous devrez supprimer votre classpathentry avec ces références org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER à l'intérieur.

1 votes

Vous ne pouvez pas simplement le supprimer de votre classpath. Je l'ai fait et mon projet a lancé 1000 erreurs parce que les dépendances Maven ne sont plus sur le classpath.

0 votes

Je n'ai aucune idée de la façon dont cette réponse a été approuvée. ce n'est pas du tout la réponse et elle ne fonctionne pas. si elle doit fonctionner, elle a besoin de plus d'explications.

0 votes

Si vous le supprimez simplement du classpath, vous n'aurez pas les dépendances maven référencées. Cela résout l'avertissement, mais vous obtenez une erreur à cause des dépendances manquantes.

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