#eclipse #maven #m2eclipse #dependency-management #eclipse-wtp
#eclipse #maven #m2eclipse #управление зависимостями #eclipse-wtp
Вопрос:
У меня возникли проблемы с m2eclipse.
Я использую Eclipse 3.6.2, m2eclipse 0.12.1 и m2extras для subclipse 0.12.0 и для wtp 0.11.1.
У меня есть проекты A (упаковка jar), B (jar) и C (war). У меня есть все три в моей рабочей области, а НЕ в локальном или удаленном репозитории (дважды проверено). C имеет зависимости от A и B. A имеет зависимости от некоторых библиотек (скажем, X и Y), а B имеет зависимости от некоторых других библиотек (скажем, P, Q и R). C слишком зависит от внешних библиотек (скажем, U, V, W). То, что Eclipse показывает мне в «Maven Dependecies», заключается в следующем:
A
- Maven Dependencies
(jar icon) X
(jar icon) Y
B
- Maven Dependencies
(jar icon) P
(jar icon) Q
(jar icon) R
C
- Maven Dependencies
(jar icon) U
(jar icon) V
(jar icon) W
(jar icon) X
(jar icon) Y
(jar icon) P
(jar icon) Q
(jar icon) R
Это проблема, потому что в проекте C Eclipse не знает о коде в проектах A и B. Я ожидаю, что настройка проекта для C будет выглядеть следующим образом
C
- Maven Dependencies
(jar icon) U
(jar icon) V
(jar icon) W
(jar icon) X
(jar icon) Y
(jar icon) P
(jar icon) Q
(jar icon) R
(folder icon) A
(folder icon) B
Хуже всего то, что до тех пор, пока я недавно не обновил проект последним кодом из SVN, настройка проекта для C выглядела так, как должна, а теперь это не так. И я помню, что раньше у меня была эта проблема, но я не могу вспомнить, как я ее решил.
У меня есть еще один project — D с упаковкой jar, и он отображается следующим образом в project Explorer:
D
- Maven Depenedencies
(jar icon) X
(jar icon) Y
(jar icon) I
(jar icon) J
(folder icon) A
Каково решение этой ситуации? Я не могу вспомнить, что я делал в предыдущий раз. Может быть, я установил Eclipse с нуля?
Комментарии:
1. Вы проверили «Разрешить зависимости из проектов Workspace» в разделе Свойства -> Maven вашего проекта?
2. @reef, конечно. Если я сниму этот флажок, то все зависимости от A и B пропадут, останутся только U, V и W.
Ответ №1:
У меня была та же проблема. Кто-то в команде проверил следующие файлы конфигурации:
.settings/org.eclipse.wst.common.component
.settings/org.eclipse.wst.common.project.facet.core.xml
.settings/org.eclipse.wst.jsdt.ui.superType.container
.settings/org.eclipse.wst.jsdt.ui.superType.name
После того, как я удалил их, m2eclipse смог правильно настроить проекты.
Комментарии:
1. Я только сейчас увидел ваш ответ. Вы могли быть совершенно правы, и я дам вам приемлемый ответ. Но посмотрите мой ответ на то, что произошло на самом деле.
Ответ №2:
У меня была та же проблема. Я хотел, чтобы мои связанные проекты отображались в разделе «Зависимости Maven» с синими значками папок, а не значками jar, указывающими, что проекты ссылались друг на друга в Eclipse, а не просто ссылались на свои jar из моего локального репозитория Maven.
Я решил проблему, открыв POM в Eclipse, изменив порядок зависимостей и сохранив. M2Eclipse переработал зависимости и все исправил. Я не уверен, почему это сработало, но это сработало.
Перед этим действием я также удалил папки репозитория проектов Eclipses, откуда поступали нежелательные JAR-файлы. После этого все по-прежнему не работало, поэтому я не знаю, имело ли это какое-либо отношение к тому, почему исправление, упомянутое выше, сработало.
Ответ №3:
Что ж, я удалил свою рабочую область, снова проверил проекты, и теперь настройки для проекта A отображаются следующим образом:
C
- Maven Dependencies
(jar icon) U
(jar icon) V
(jar icon) W
(jar icon) X
(jar icon) Y
(jar icon) P
(jar icon) Q
(jar icon) R
- Web App Libraries
(jar icon) R
(jar icon) V
(jar icon) X
(jar icon) W
(jar icon) Y
(jar icon) P
(jar icon) U
(jar icon) Q
(folder icon) A
(folder icon) B
Похоже, что зависимые проекты теперь отображаются в библиотеках веб-приложений. Я полагаю, что возможно, что аспект «Динамический веб-модуль» отсутствовал ранее, когда я проверял новый код из SVN, который, возможно, вызвал Maven > Обновить конфигурацию проекта.
Также теперь я использую версию m2extras версии 0.12.0 для wtp.