m2eclipse не показывает зависимости проекта workspace, но показывает транзитивные зависимости

#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.