Зависимости Maven не отображаются в WEB-INF/lib

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

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

Ответ 1

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

  • вы должны вызвать mvn package (или щелкните правой кнопкой мыши > maven > пакет) и получить военный файл - <packaging> (в pom) должен быть war
  • ваши зависимости должны быть с областью по умолчанию (если они provided или test, они не будут включены в архив)
  • Если вы запускаете проект как динамический веб-проект на сервере в eclipse, вам следует открыть свойства проекта (щелкните правой кнопкой мыши > свойства) и выберите "Сборка развертывания". Нажмите "добавить", выберите "Записать путь к записям" и выберите "зависимости от maven". Это даст указание WTP отправлять зависимости maven в директорию сервера.

Ответ 2

Сначала установите Maven Integration для Eclipse WTP (Help- > Eclipse Marketplace)

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

    <packaging>war</packaging>

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

Ответ 3

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

Ответ 4

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

Ответ 5

Я только что сделал проект maven → update для меня.

Ответ 6

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

см. этот и docs

Ответ 7

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

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

Это прочистило систему для меня.