it-swarm.com.ru

Зависимости Maven не видны в WEB-INF/lib

У меня странная проблема с созданием моего проекта на базе Maven. Я создал новый проект Maven в Eclipse и включил динамические веб-аспекты. Но теперь во время выполнения он выдает ClassNotFoundException, поскольку зависимости Maven не копируются в каталог WEB-INF/lib. Я даже пытался добавить в POM раздел copy-dependencies, но это не помогло.

Кто-то здесь , казалось, решил это правильно, но я думаю, что он забыл упомянуть решение: :(

61
Suraj Chandran

Это не должно иметь ничего общего с Eclipse и m2Eclipse, и, необязательно, для лучшей поддержки - m2e-wtp . Кроме того, вам не нужны зависимости от копирования. Вот несколько возможных причин:

  • вы должны вызвать mvn package (или щелкнуть правой кнопкой мыши> maven> package) и получить файл war - <packaging> (в pom) должен быть war
  • ваши зависимости должны соответствовать области по умолчанию (если они provided или test, они не будут включены в архив)
  • если вы запускаете проект как динамический веб-проект на сервере в Eclipse, то вам нужно открыть свойства проекта (щелкнуть правой кнопкой мыши> свойства) и выбрать «Сборка развертывания». Там нажмите «Добавить», выберите «Построить записи пути» и выберите «maven зависимости». Это будет указывать WTP отправлять зависимости maven на сервер dir.
162
Bozho

Первая установка Maven Integration для Eclipse WTP (Справка-> Eclipse Marketplace)

Затем в pom.xml вашего веб-проекта просто добавьте:

    <packaging>war</packaging>

После этого просто щелкните правой кнопкой мыши проект, Maven -> Обновить проект, который должен автоматически добавить зависимости Maven для вас в сборке развертывания.

12
Vedran

Щелкните правой кнопкой мыши проект> Maven> Обновить проект Maven> ОК исправил его для меня

5
Erik-Jan

Проверьте Deployment Assembly свойство проекта. Я видел, что некоторые сгенерированные mvn Eclipse:eclipse проекты Eclipse иногда размещают ресурсы в неправильном месте. Из того, что я помню, новый Deployment Assembly имел некоторые проблемы с более ранними версиями Eclipse 3.6 (Helios).

4
andyb

Я только что сделал Maven -> обновление проекта работает для меня.

2
Anil

Если вы посмотрите на свое развертывание и увидите, что WEB-Inf/lib не содержит ваших зависимостей Maven, то обеспечение этих зависимостей Maven в вашем развертывании Сборка имеет решающее значение, как упомянуто в выбранном ответе. 

Однако будьте осторожны с Eclipse, тогда не обновляйте все, даже с обновлением Maven. Если вы выполняете очистку, перестройку и повторное развертывание и по-прежнему не видите, что папка lib заполнена, попробуйте удалить и повторно добавить приложение в развертывания сервера через Серверы> Добавить и удалить. 

Это разблокировало систему для меня.

0
Shaun O'Hagan

вы хотите использовать плагин копирования зависимостей

увидеть это пост и документы

0
mut1na

Щелкните правой кнопкой мыши проект -> Сборка развертывания: Проверьте, есть ли у вас зависимости Maven и все остальные в нем . Если нет, Щелкните правой кнопкой мыши проект -> Maven -> Включить разрешение рабочей области.

(может быть, тогда Maven -> Обновить проект, но затем снова загляните в «Deployment Assembly» и посмотрите, что у вас есть.) Это решило это (наконец-то!) для меня. 

0
Robert Fornesdale