Ответ 1
Для всех, кто ищет это, кажется, что вы также можете вручную добавить следующее в файл .classpath
<classpathentry combineaccessrules="false" kind="src" path="/B"/>
Извините за подробный...
У меня есть несколько существующих проектов maven. Я импортировал их в Eclipse, используя Maven → Импортировать существующие проекты Maven.
Это дало мне 6 отдельных проектов и один проект, в котором перечислены все 6 под ним. (Зонный проект имеет в нем 6 модулей, которые переведены в 6 проектов eclipse - так как я понимаю, как работает maven)
Один из проектов A требует двух других проектов B и C (во время компиляции и времени выполнения).
Путь сборки - На пути сборки A у меня есть одна из библиотек как зависимости Maven. И он строит отлично.
Развертывание сборки -
В сборке развертывания A, однако, нет места для развертывания до web-inf/lib
. Из-за этого, когда tomcat начинает, он не находит никаких необходимых банок или проектов B и C.
Поэтому я добавил запись в сборку развертывания как: source-maven И установки зависимостей - web-inf/lib.
Tomcat появляется, и появляется мой webapp для проекта A.
Это, однако, нарушает работу затмения - после сборки eclipse жалуется: "Неверный экспорт публикации пути к классам. Записи проекта не поддерживаются.
Это видно из-за того, что в пути сборки добавлена новая запись, добавленная в web-inf/lib для публикации/экспорта под зависимостями maven. Удаление, которое удаляет запись maven из сборки развертывания.
Единственным обходным решением является то, что в сборке развертывания я указываю web-inf/lib
под целевым объектом, сгенерированным maven, но который вызывает сбор старых экземпляров проектов B и C.
Почему мне нужен этот параметр, потому что, когда я вношу изменения в проекты B и C в Eclipse и создаю их в Eclipse, я хочу видеть изменения, когда я отлаживаю проект A. Я не хочу запускать сборки maven на B и C снова, так как он занимает много времени.
Любая помощь очень ценится.
Я попытался включить MAVEN2_CLASSPATH_CONTAINER
, но всегда пуст, и когда tomcat работает, он не может найти необходимые библиотеки. (Кстати, какой vale является MAVEN2_CLASSPATH_CONTATINER
установленным?)
Это на Eclipse Indigo Mac OSX.
Для всех, кто ищет это, кажется, что вы также можете вручную добавить следующее в файл .classpath
<classpathentry combineaccessrules="false" kind="src" path="/B"/>
Вам нужно добавить соответствующие проекты на свою сборку развертывания.
Щелкните правой кнопкой мыши проект → Свойства → Установка развертывания → Добавить
Я решил просто сделать это:
щелкните правой кнопкой мыши мой проект eclipse- > Maven → Обновить конфигурацию проекта...
Выяснил это... но не полностью...
Итак, я добавил зависимость maven в сборке развертывания, как я упоминал ранее.
Maven dependency -> WEB-INF/lib
И дополнительно добавил проект B и C:
B -> WEB-INF/lib and C->WEB-INF/lib
Как-то так B и C не добавляются в публикацию/экспорт в пути сборки java. Я не знаю, как eclipse знает, не экспортировать B и C из maven repo, но экспортировать его из самого проекта B и C.
В любом случае, это на другой день. пока я счастлив:)
У меня была эта проблема, но я считаю, что ни один из этих ответов не исправил проблему. Вместо этого они обрабатывают m2eclipse (который должен управлять классами и сборкой развертывания для вас). Для меня проблема в том, что я использовал m2eclipse без m2eclipse-wtp (отдельный плагин).
См. этот ответ SO для деталей подключаемого модуля.
Вы можете добавить соответствующие проекты/или запись пути построения maven java, если вы используете maven для своей сборки развертывания (project → properties → Assembly Assembly)
Затем проверяет, соответствуют ли тезисы соответствующему проекту Facets. (проект → Границы проекта)
Включая зависимости Maven, вы включаете зависимости для проекта B и проекта C. Оказывается, вам также необходимо включать проекты B и C вручную.
Точное исправление, которое работает. проект A → свойства → Развертывание сборки
Нажмите "Добавить", а затем "Проект". Выберите B и C. Проблема будет исправлена после восстановления.
Эта ошибка может возникнуть, если в вашем классе есть несколько записей одного и того же баннера. Поэтому вам нужно проверить свой путь к классам и удалить повторяющиеся записи.