Запись пути к классу org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER не будет экспортирована - PullRequest
62 голосов
/ 23 июля 2011

Я получаю это предупреждение в Eclipse:

Запись classpath org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER не будет экспортирована или опубликована. Время выполнения ClassNotFoundExceptions может привести к

После поиска я обнаружил, что мне нужно исправить экспорт. Я сделал это.

Eclipse Java Build Path properties

Но это предупреждение сохраняется! Что еще можно сделать, чтобы это исправить? Спасибо.

Ответы [ 15 ]

35 голосов
/ 12 февраля 2012

Вы можете щелкнуть правой кнопкой мыши предупреждение, выбрать быстрое исправление и выбрать один из следующих вариантов:

  • Пометить связанную необработанную запись пути к классу как зависимость публикации / экспорта.
  • Исключить связанную необработанную запись пути к классу из набора потенциальных зависимостей публикации / экспорта.

Поскольку у вас не будет затмения публикации / экспорта проекта, его безопасно исключить. Но в любом случае это не имеет значения

Пошаговые скриншоты:
http://publib.boulder.ibm.com/infocenter/radhelp/v8/index.jsp?topic=/com.ibm.javaee.doc/topics/tlooseclasspath.html

25 голосов
/ 26 февраля 2012

Я испробовал оба варианта, но вам нужен только последний:

  • Пометить связанную необработанную запись пути к классам как зависимость публикации / экспорта
  • Исключить связанный необработанный файлЗапись пути к классу из набора потенциальных зависимостей публикации / экспорта

Если вы экспортируете зависимость, обновление конфигурации проекта через контекстное меню Maven -> Обновить конфигурацию вызовет предупреждениевернуть.В этом случае вам нужно отредактировать файл .classpath вручную:

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

Просто удалите атрибут exported="true" и подтвердите, обновив конфигурацию проекта.

13 голосов
/ 15 сентября 2013

У меня была такая же проблема; исчезает после включения

<packaging>war</packaging> 

в пом. Упаковки не было вообще.

9 голосов
/ 11 января 2013

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

В некоторых случаях Eclipse выдаст вам следующее предупреждение:

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

Итак, решите это, сделайте следующее:

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”

Проблема теперь решена. Может пройти некоторое время, прежде чем предупреждение исчезнет, ​​потому что проект должен быть перестроен, прежде чем он исчезнет.

5 голосов
/ 20 октября 2017

Просто щелкните правой кнопкой мыши предупреждение и выполните быстрое исправление

enter image description here

Затем вы можете просмотреть изменения файла .classpath из системы управления исходным кодом

enter image description here

4 голосов
/ 08 мая 2015

Мне не удалось решить проблему с помощью быстрого исправления в Eclipse Luna. Проблема исчезла после удаления аспекта проекта «Динамический веб _Module». В Windows -> Настройки -> Фасеты проекта.

enter image description here

P.S. «Упаковка как война» также разрешила выпуск, но предполагалось, что это будет JAR, и я был озадачен, почему некоторые проекты работали нормально, а некоторые - нет.

И, кстати, предупреждение было реальным. Это вызвало исключения ClassNotFoundExceptions на сервере, которые сделали его непригодным для использования, когда другие проекты ссылались на это.

1 голос
/ 26 июля 2018

Ни один из ответов не помог в моем случае.Каждый раз, когда я обновляю проект, m2e удаляет запись из файла .classpath, который отключает предупреждения.

Я отправил отчет об ошибке: https://bugs.eclipse.org/bugs/show_bug.cgi?id=537401

1 голос
/ 12 сентября 2017

У меня есть простой способ решить эту проблему:

  1. Удалить проект из вашего Eclipse.
  2. В рабочее пространство, где расположен проект.
  3. Удалить элементы, выбранные на следующем изображении.Просто оставьте src и pom.xml.

    enter image description here

  4. Повторно импортируйте проект в Eclipse.

1 голос
/ 24 июля 2015

Большинство ответов, включая принятый в настоящее время, обеспечивают временное решение этой проблемы: каждый раз, когда я выбираю Maven> Обновить проект… и , оставляя параметр «Обновить конфигурацию проекта из pom.xml» впредупреждение вернулось.

Однако после установки m2e-wtp - Maven Integration for WTP в Eclipse 4.5 (Mars) и повторного запуска Update Project…, оставив выбранную опцию, предупреждение (и возникающая ошибка) исчезло.

0 голосов
/ 04 февраля 2019

У меня возникла та же проблема после обновления моего JDK в проекте, и я решил ее, заменив мой файл .classpath на предыдущий.Я заметил следующие изменения в моем файле .classpath

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

Во второй строке не было кода сверху

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

В этой строке не было

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

Этибыли добавлены строки, поэтому я удалил их вручную, и все снова заработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...