m2eclipse несколько зависимостей от пути к классам - PullRequest
2 голосов
/ 24 октября 2010

это может быть дублирование, но в затмении, как я могу иметь дело с различными версиями зависимостей одной и той же библиотеки в моем локальном репозитории maven?

Проблема в том, что версии зависимостей, указанные в определении pom, - это библиотеки, которые мне нужно использовать (у них есть доступные исходники / javadoc и т. Д.), Но maven помещает все доступные версии библиотек в classpath, так что если я нажимаю Ctrl + shift + Если вы входите в какой-либо класс, который принадлежит этой зависимости, то это может быть класс без sources / javadoc, который не объявлен в определении pom, но в локальном репозитории maven. Нет способа установить приоритет.

Прямо в окне щенка вверх есть функция «Удалить из истории» (Ctrl + Shift + T), но она практически бесполезна, не работает.

1 Ответ

4 голосов
/ 24 октября 2010

Проблема в том, что версии зависимостей, указанные в определении pom, - это библиотеки, которые мне нужно использовать (они имеют исходные коды / javadoc и т. Д.), Но maven помещает все доступные версии библиотек в classpath (...)

Нет, это не правда. Мейвен указывает на путь класса то, что ты ему скажешь.

(...) так что если я нажму ctrl + shift + T или зайду в какой-то класс, который принадлежит этой зависимости, то это может быть класс без sources / javadoc, который не объявлен в определении pom, но в локальном репозитории maven .

В Eclipse, когда вы открываете тип , Eclipse просто ищет тип в пути к классам всех проектов в рабочей области. Поэтому, если у вас есть проект A с foo-X.jar на пути к классам и проект B с foo-Y.jar на пути к классам, и если оба содержат тип Bar, поиск Bar выведет список обеих версий.

Но Eclipse не выполняет поиск в JARS, которые не определены как зависимости проектов в вашем worskpace, он не ищет во всех JAR-файлах вашего локального репозитория. И это не совсем проблема Maven или m2eclipse.

Тем не менее, единственный известный мне способ ограничить поиск, скажем, зависимостей только проекта A, - это определить Рабочий набор с помощью меню под верхним стрелка вправо:

alt text

...