Eclipse Maven показывает несколько путей для одного и того же файла

Есть ли в Eclipse какие-либо настройки для отображения только проекта Maven, в котором находится файл?

У меня есть разные проекты Maven, которые являются модулями родительского проекта Maven:

projParent
   |-projWeb
   |-projModel
   |-projServices
   |-...

Если я ищу файл, используя «Открытый ресурс» (используя Ctrl + Shift + r) в Eclipse, он появляется во многих проектах (например, в projParent и в projWeb).

Есть ли способ показать только соответствующую папку, в которой на самом деле находится этот файл?


person user593029    schedule 22.07.2013    source источник
comment
Это дубликат stackoverflow.com/questions/15064796/, но на другой вопрос есть гораздо лучший ответ (установить папки в родительских проектах как производные).   -  person Jon Newmuis    schedule 29.11.2013


Ответы (3)


Попробуйте определить Рабочий Набор, который включает только те модули, в которых вы хотите выполнить поиск, а затем использовать этот рабочий набор в поиске.

ИЗМЕНИТЬ

На самом деле я пробовал, и он просто отлично работает по умолчанию в eclipse 4.3 (Kepler), для вложенных проектов возвращается только один результат.

В любом случае, вот как использовать рабочий набор в открытом ресурсе (пример не относится к ресурсу во вложенном модуле, так как в этом случае Kepler не показывает повторяющиеся результаты; поэтому пример представляет собой просто два разных ресурса с одним и тем же именем в двух разные модули):

(1) Нажмите клавиши ctrl+shift+R. Я искал ресурс под названием pom.xml. Вы можете увидеть два результата:

открыть ресурс без рабочего набора

(2) Нажмите маленькую стрелку вниз в правом верхнем углу окна и выберите Select Working Set...:

открыть ресурс, выбрать рабочий набор

(3) Отметьте переключатель Selected Working Sets и отметьте нужные проекты (в вашем случае листовые проекты):

введите здесь описание изображения

(4) И вуаля, Open Resource возвращает только один результат:

открыть ресурс после выбора рабочего набора

person yair    schedule 22.07.2013
comment
Я не хочу использовать открытие поиска, так как это отнимает много времени и не имеет смысла использовать его для открытия файла ... я бы предпочел визуально различать путь к файлу. - person user593029; 23.07.2013
comment
@ user593029 вам нужно только один раз выбрать в окне Open Resource рабочий набор, и он будет использоваться каждый раз, когда вы используете его для поиска, это не открытый поиск. - person yair; 24.07.2013
comment
@user593029 user593029 Надеюсь, снимки правильные, я сам не вижу их в стеке (imgur здесь заблокирован ...). - person yair; 24.07.2013
comment
Я думаю, что, вероятно, рабочий набор - единственный вариант, который я пробовал ранее, но единственная проблема заключается в том, что вам нужно каждый раз отменять выбор ... однако странно, что eclipse показывает родительский и другие модули как путь для одного и того же файла. Однако я искал другой параметр, который может помочь показать только путь, где фактически находится файл. - person user593029; 25.07.2013

Вы, вероятно, говорите о своего рода дублировании между родительским проектом и его подмодулями. В последней версии Eclipse (возможно, с 3.6 и, конечно, с 3.7) есть новая опция

Окна меню >

Item Preferences >

    Tree item Maven >

       Option : Hide folders of physically nested modules

Это не будет работать в существующем проекте. Вы должны удалить их (логически) и повторно импортировать их

person Jean-Rémy Revy    schedule 22.07.2013
comment
Он не работает при проверке вышеуказанной опции. Например, если webservice.java проверен в проекте projservice maven, а projparent является родительским проектом maven для projservice. То, что я вижу на открытых ресурсах, это /projservice/webservice.java & /projparent/projservice/webservice.java... не уверен, как избавиться от избыточной записи /projparent/projservice/webservice.java в открытых ресурсах. Я не знаю хочу использовать поиск, открытый, так как это отнимает много времени, и нет смысла использовать его для открытия файла .. я бы предпочел визуально различать путь к файлу - person user593029; 23.07.2013
comment
Аналогичная опция есть в Kepler (4.3), но у меня она не работает. Вы можете получить к нему доступ через настройки: на вкладке Maven вы можете установить флажок Скрывать папки физически вложенных модулей (экспериментально) - person Justin Harris; 21.11.2013
comment
Как я уже сказал, вы ДОЛЖНЫ удалить и повторно импортировать их, чтобы активировать эту функцию, но она все еще может не работать ... ах ... IntelliJ Idea для этого лучше! - person Jean-Rémy Revy; 27.12.2014
comment
Работает при повторном импорте всех проектов как существующих проектов Maven. - person Eero Aaltonen; 24.04.2015
comment
В Eclipse Mars эта функция по-прежнему помечена как экспериментальная. - person borjab; 26.01.2016
comment
Действительно ? Действительно, в прошлый раз я импортировал maven-проект в Eclipse Mars 1, тогда он автоматически находил подходящую структуру, скрывая вложенные каталоги и показывая модули прав. - person Jean-Rémy Revy; 19.06.2016
comment
Есть одна загвоздка: в Eclipse Oxygen у меня не работает, если я импортирую проекты с помощью «Открыть проект из файловой системы». Но он отлично работает, используя File->Import...->Maven->Existing Maven Projects. - person Coyotwill; 18.10.2017

У меня была такая же проблема, и мне помогло выбрать Filter Duplicated Resources в диалоговом окне Open Resource:

Открыть меню Включить фильтр

Другая (не связанная с этим) полезная функция — скрытие папок-подмодулей из родительского проекта в проводнике пакетов.
Это можно сделать с помощью фильтра Maven modules в меню проводника пакетов:
Включить модули maven  фильтр

Протестировано с Eclipse 2019-06 (4.12.0)

person Springrbua    schedule 24.10.2019