Зависимости Maven не видны в WEB-INF / lib - PullRequest
64 голосов
/ 21 мая 2011

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

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

Ответы [ 8 ]

167 голосов
/ 21 мая 2011

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

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

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

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

    <packaging>war</packaging>

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

5 голосов
/ 06 июля 2015

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

4 голосов
/ 21 мая 2011

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

3 голосов
/ 23 декабря 2014

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

0 голосов
/ 23 февраля 2018

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

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

0 голосов
/ 08 октября 2015

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

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

Это сняло с меня систему.

0 голосов
/ 21 мая 2011

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

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

...