Как скопировать зависимости в папку WEB_INF / lib в проекте Spring с Maven? - PullRequest
0 голосов
/ 08 ноября 2010

У меня есть проект Spring MVC в Eclipse Galileo.Его зависимости указаны в pom.xml .Когда я набираю mvn eclipse:eclipse, зависимости указываются как ссылки в пути сборки Eclipse.Но когда я пытаюсь запустить это приложение на сервере (в Eclipse запустить -> запустить на сервере) зависимости не существуют в пути к классам, и поэтому я получаю ошибку classDefNotFound.Есть ли способ решить эту проблему?

Большое спасибо!

Ответы [ 5 ]

3 голосов
/ 08 ноября 2010

Как скопировать зависимости в папку WEB_INF / lib в проекте Spring с Maven?

В этом нет необходимости.И это просто ужасный обходной путь.Устранить причину проблемы.

У меня есть проект Spring MVC в Eclipse Galileo.Его зависимости указаны в pom.xml.Когда я набираю mvn eclipse: eclipse, зависимости указываются как ссылки в пути сборки Eclipse.

Странно, это не то, что я получаю.Можете ли вы показать содержание вашего .classpath?Типичный .classpath, сгенерированный плагином Maven Eclipse, выглядит следующим образом:

<classpath>
  <classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
  <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
  <classpathentry kind="output" path="target/classes"/>
  <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/>
  ...
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
</classpath>

Я не вижу здесь никакой «ссылки».Определен ли M2_REPO в вашей среде?

Но когда я пытаюсь запустить это приложение на сервере (в Eclipse запустить -> запустить на сервере) зависимости не существуют в пути к классам, и этопочему я получаю ошибку classDefNotFound

Я думаю, что-то еще не так.Но копирование зависимостей в WEB-INF/lib, безусловно, не является правильным способом решения проблемы.

1 голос
/ 18 мая 2012

У меня была похожая проблема с проектом maven на IRAD.Щелкните правой кнопкой мыши по проекту War, выберите свойства.В разделе «Зависимости модуля Java EE» установите флажок напротив «Зависимости Maven».Это должно скопировать папку lib в целевое расположение на сервере во время развертывания.

Я использую IRAD, поэтому не уверен, относится ли это к IRAD или доступно в Eclipse.

1 голос
/ 08 ноября 2010

Я предлагаю вам взглянуть на M2Eclipse .Он обеспечивает контейнер classpath с maven-зависимостями проекта и, как правило, лучше интегрируется с Eclipse.

M2Eclipse classpath container

Его основные функции:

  • Создание и импортПроекты Maven
  • Управление зависимостями и интеграция с Eclipse classpath
  • Автоматическая загрузка и обновление зависимостей
  • Артефакт Javadoc и разрешение исходного кода
  • Создание проектов с архетипами Maven
  • Просмотр и поиск в удаленных репозиториях Maven
  • Управление POM с автоматическим обновлением списка зависимостей
  • Материализация проекта из POM Maven
  • Извлечение проекта Maven изнесколько репозиториев SCM
  • Адаптация вложенных многомодульных проектов Maven к Eclipse IDE
  • Интеграция с проектом веб-инструментов (WTP)
  • Интеграция с Subclipse и Subversive
  • Интеграция с Mylyn
  • Редактор POM на основе форм
  • Графический дисплейГрафики зависимостей
  • Графическое представление графического интерфейса дерева зависимостей и разрешенных зависимостей

Плагин maven-eclipse-plugin запланирован как устаревший, а позднее удален , поэтомубыло бы разумно изучить что-то, что будет сохранено в ближайшем будущем.

0 голосов
/ 08 ноября 2010

Вы добавили переменную MAVEN_REPO classpath в Eclipse?Если нет, вы можете использовать плагин maven, чтобы сделать это:

mvn -Dworkspace=/path/to/your/workspace eclipse:configure-workspace

Подробнее смотрите на странице Использование плагина maven-eclipse-plugin!

0 голосов
/ 08 ноября 2010

Поскольку у вас, похоже, есть проект maven, вы можете использовать плагин Eclipse Maven ( M2Eclipse ) и импортировать проект как проект Maven

Тем не менее, вышеприведенные шаги должны были бы сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...