Подтвердить что ты не робот

Поиск файла Eclipse находит один и тот же файл несколько раз

В Eclipse у меня есть два проекта maven A и B, где A - родительский элемент B. Структура каталогов следующая:

A/pom.xml
A/B/pom.xml
A/B/...

Затем я использую поиск файлов (Ctrl + H), чтобы найти любой файл в проекте B. Окно результата поиска показывает файл два раза с разными относительными путями:

A/B/<my_file>
B/<my_file>

Итак, тот же файл отображается дважды. Очевидно, что первый результат поиска является повторным. Есть ли способ исключить эти повторяющиеся результаты поиска?

4b9b3361

Ответ 1

То, что я лично делаю, чтобы избежать этого, означает, что каждый модуль в родительском проекте является производным (щелкните правой кнопкой мыши по папке > свойствa > Атрибуты: Производные).

Затем, когда вы выполняете поиск файлов, снимите флажок "Рассматривать производные ресурсы" (я не думаю, что он проверен по умолчанию), и вы не получите A/B/<my_file>.

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

Ответ 2

Окно проверки → Настройки → Maven → Скрывать папки физически вложенных модулей (экспериментальные) работало для меня в версии Mars.1 Release (4.5.1).

После проверки я закрыл все проекты в eclipse, удалил файлы проекта eclipse (.project,.classpath и .settings) и повторно импортировал мои проекты maven.

Ответ 3

Windows - Настройки - Maven - Скрытие папок физически вложенных модулей

Ответ 4

Я согласен с Деймоном Хоррелом. Перейти к Windows - Настройки - Maven - Скрыть папки физически вложенных модулей (убедитесь, что флажок установлен).

Примечание. Обязательно заново импортируйте проект maven в eclipse, чтобы увидеть изменения.

Ответ 5

Существует древняя ошибка которая запрашивает Eclipse для поддержки вложенных проектов. Открыт в 2008 году, скорее всего, не скоро.

Так как Eclipse не поддерживает макет вложенного модуля Maven по умолчанию, вам нужно импортировать каждый модуль отдельно, что не путает Eclipse, но может смутить вас, как вы можете видеть в результатах поиска. Подобные вещи случаются, когда вы начинаете сохранять конфигурацию запуска в модуле.

Существует несколько возможных решений:

  • Попытайтесь игнорировать половину результатов поиска. Принимает определенную дисциплину, но не магия.

  • Убедитесь, что ваш корневой проект не содержит ничего важного, которое вы можете открыть из Eclipse (т.е. переместите родительский POM в новый модуль, который должен быть дочерним по отношению к корневому проекту). Теперь вы можете закрыть проект root.

    Занимает определенную дисциплину, где нужно поместить вещи в свой проект, и это неуклюже, когда вам нужно добавить новые модули.

  • Используйте плоский мультимодульный подход. Это расширение для # 2, оно выглядит странно, и могут быть плагины, которые оскорблены этим. Поэтому, если вы используете множество нестандартных плагинов, вы должны проверить, нравится ли им новый макет.

Ответ 6

У меня была аналогичная проблема.

Мое решение для этой проблемы было

  • Создать eclipse "рабочий набор" проектов для поиска
  • Установите этот рабочий набор как параметр в диалоговом окне поиска
  • Искать в нем

    пример диалога поиска

Ответ 7

В открывшемся окне ресурсов (cntrl + shift + R) щелкните стрелку в правом верхнем углу и выберите "Фильтровать дублированные ресурсы". Это сработало для меня.

Ответ 8

Вы можете решить эту проблему, используя плоский мультимодульный подход.

Предостережения могут применяться, если вы используете плагин maven-release с системой управления версиями, отличной от Subversion.

Ответ 9

Как новый столяр, все еще не мог комментировать, но я действительно хотел бы добавить что-то к лучшему ответу. Оно работает! Он не только удалил для меня дубликаты файлов (один из дочернего модуля и один из родительского модуля), он также удалил файлы классов из родительского модуля).

Но он добавил папку в мой .gitignore, что вызовет проблему для новых файлов/каталогов, добавленных позже. Я только что вернул изменение в .gitignore и все еще работает в eclipse.

Найдите этот ответ, чтобы отключить автоматическое изменение .gitignore EGit и Eclipse изменяет файл .gitignore, но он не должен

Ответ 10

В родительском проекте дочерние были уже визуально скрыты в моем случае, но все же найдены через поиск и Ctrl -клинические ссылки.

Я решил это, используя Фильтры ресурсов:

  • Проект правой кнопкой мыши (родительский) > Свойствa > Ресурs > Фильтры ресурсов
  • Нажмите "Добавить фильтр...", выберите "Применить к → " Папки "и введите имя дочернего проекта дочернего проекта, нажмите" ОК "
  • Повторите 2. для всех дочерних папок проекта

В конце вы должны иметь что-то вроде этого: введите описание изображения здесь