Eclipse WTP, maven и m2eclipse - без копирования предоставленных jar-файлов

При использовании Eclipse WTP и m2eclipse можно скопировать все зависимости в WEB-INF / lib (добавив «зависимости maven» в сборку развертывания). Однако зависимости с "предоставленной" областью также копируются, например, el-api и jsp-api. Это мешает контейнеру, и он не запускается.

Какое-либо решение, чтобы не копировать "предоставленные" банки?


person Bozho    schedule 08.08.2011    source источник
comment
Я думаю, вам придется вручную удалить их из сборки развертывания eclipse. Это специфично для затмения, и не думайте, что Maven играет здесь роль.   -  person isobar    schedule 08.08.2011
comment
нет возможности исключения. Он просто добавляет все зависимости maven   -  person Bozho    schedule 08.08.2011


Ответы (3)


Вам необходимо установить m2eclipse-wtp , который является дополнительным плагином для m2eclipse. Он сделает эту работу за вас. После установки m2eclipse-wtp просто щелкните правой кнопкой мыши project ---> Maven --> Update Project Configuration, и вы обнаружите, что библиотеки предоставленной области больше не будут доверять контейнеру WTP.

См. this для инструкций по установке. Я бы посоветовал установить последнюю версию m2eclipse-wtp (протестирован на Eclipse 3.6 +), поскольку он решает некоторые серьезные ошибки в предыдущих версиях.

Изменить: Спасибо Фреду за исправление

person Ken Chan    schedule 08.08.2011
comment
Кен, небольшое исправление: m2e-wtp технически больше не является частью m2eclipse-extras, а представляет собой отдельный проект. Однако с версии 0.13.1 (community.jboss.org/en/tools/blog/2011/08/01/), для этого требуется функция mavenarchiver 0.14.x + из m2eclipse-extras, которая должна быть установлена ​​автоматически из Сайт обновлений m2e-wtp (download.jboss.org/jbosstools/updates/m2eclipse-wtp) - person Fred Bricon; 09.08.2011
comment
m2eclipse-wtp устарел и заменен m2e-wtp. - person vlfig; 06.12.2012
comment
Мне также пришлось добавить ‹packaging› war ‹/packaging› в pom.xml, чтобы это работало. - person Vedran; 19.12.2012

Вам необходимо добавить библиотеку Maven в сборку развертывания WTP ...

Щелкните правой кнопкой мыши свой проект и выберите «Свойства».

В меню "Свойства" выберите "Развертывание".

Нажмите «Добавить» -> «Записи пути сборки Java», затем нажмите «Далее».

Выберите в списке «Библиотеки Maven» и нажмите «Готово».

person Mouscellaneous    schedule 08.08.2011
comment
хорошо ! другой способ: нажмите «Добавить» - ›Папка, затем нажмите« Далее », выберите цель / ‹appname› / webapp / WEB-INF / lib, а затем отредактируйте папку назначения как WEB-INF / lib - person Fabio Marano; 02.06.2015
comment
@FabioMarano На самом деле ваше решение лучше, потому что оно не развертывает зависимости, которые имеют предоставленную область или область выполнения. - person jplandrain; 12.04.2016

Зависимости области действия "при условии" не должны упаковываться Maven в окончательную сборку.

Однако проверьте, есть ли у вас другие зависимости, которые являются «компилируемыми», которые также объявляют те же зависимости как «компилируемые». Другими словами, весьма вероятно, что el-api и jsp-api используются как транзитивные зависимости.

Самый простой способ проверить - использовать представление «Иерархия зависимостей» m2eclipse.

person Alistair A. Israel    schedule 08.08.2011
comment
они не извлекаются как транзитивные зависимости. Они объявлены в нашем pom с предоставленной областью видимости, но m2eclipse не может распознать область видимости и просто копирует все. - person Bozho; 08.08.2011
comment
О, так что вы упаковываете из Eclipse, а не используете Maven. Так что действительно m2eclipse + WTP, вот в чем проблема. Извините, внимательно не прочитал. - person Alistair A. Israel; 08.08.2011