Eclipse WTP, maven и m2eclipse - не копирование предоставленных банок
При использовании Eclipse WTP и m2eclipse можно скопировать все зависимости в WEB-INF/lib (путем добавления "зависимостей maven" в сборке развертывания). Тем не менее, также скопированы зависимости с областью "предоставлены", например, el-api и jsp-api. Это мешает контейнеру, и он не запускается.
Любое решение для того, чтобы не копировать "предоставленные" банки?
Ответы
Ответ 1
Вам нужно установить m2eclipse-wtp
, который является дополнительным подключаемым модулем для m2eclipse. Он выполнит эту работу для вас. После установки m2eclipse-wtp просто щелкните правой кнопкой мыши project ---> Maven --> Update Project Configuration
, вы обнаружите, что libs предоставленной области больше не будут не доверять контейнеру WTP.
См. this для инструкции по установке. Я бы предложил установить последнюю версию m2eclipse-wtp (протестированной против Eclipse 3.6 +), поскольку она решает некоторые основные ошибки в предыдущих версиях.
Изменить: Спасибо Fred за исправление
Ответ 2
Вам нужно добавить библиотеку Maven в сборку развертывания WTP...
Щелкните правой кнопкой мыши на своем проекте, выберите "Свойства"
В меню свойств нажмите "Развертывание сборки"
Нажмите "Добавить" → "Записи пути Java Build Path", затем нажмите "Далее"
Выберите "Maven Libraries" в списке и нажмите "Готово"
Ответ 3
Зависимости объема "предоставляется" не должны быть упакованы Maven в окончательной сборке.
Однако проверьте, есть ли у вас другие зависимости, которые "компилируются", которые также объявляют те же самые зависимости, что и "компилировать". Другими словами, очень вероятно, что el-api
и jsp-api
вытягиваются в качестве транзитивных зависимостей.
Самый простой способ проверить - использовать представление иерархии зависимостей m2eclipse.