2009-11-11 2 views
5

Хорошо, я полностью googled-out.Eclipse rename не работает полностью

У меня есть несколько проектов java в рабочем пространстве eclipse (около 25).   Большинство проектов используют связанные исходные папки.

Когда я переименовываю класс в Project1, ссылки на этот класс в других проектах не обновляются. Ссылки в проекте обновляются очень хорошо.   Конечным результатом являются ошибки компиляции при следующей автоматической перекомпиляции.

Я использую Eclipse, 3.5.1, но такое же поведение было показано 3.4.0 и 3.4.2

Любые идеи о том, как это исправить?

Мой текущий план - после поиска в течение 20 минут - это написать скрипт для преобразования связанных исходных папок в качестве ссылок ОС (я на Linux) в самих папках проекта.   Итак, я больше не использую связанные исходные папки.

+0

Если вы попытаетесь щелкнуть или использовать F3 в классе в другом проекте, это работает? – Thimmayya

+0

Да. Ctrl-Shift-G также работает. – daveb

+0

Я опробовал тестовый файл со связанными исходными файлами, и он работал, как ожидалось. Возможно ли, что происходит частичный рефакторинг, а некоторые файлы не полностью реорганизованы? – Thimmayya

ответ

0

Перекрестные переименования проектов прекрасно работают, если ваши проекты зависят друг от друга. Что именно вы имеете в виду со связанными исходными папками: вы ссылаетесь на одну и ту же исходную папку более одного раза?

+0

Зависимости проекта правильны. Связанная исходная папка - это исходная папка, которая отсутствует в вашем проекте, но находится в другом месте. Чтобы увидеть это, отредактируйте путь построения проекта, а затем на вкладке «Источник» вы увидите кнопку «Ссылка источника». Таким образом я связал исходные папки – daveb

0

Это выстрел в темноте, но убедитесь, что ваш проект является Java-проектом. Я не уверен, что другие типы проектов (например, общий проект) могут не реорганизоваться должным образом. Я никогда не видел эту проблему раньше, и она всегда работала так, как ожидалось для меня ...

1

Как сказал Филипп Фейс, это прекрасно работает, если ваши проекты заданы как зависимость друг на друге. Убедитесь, что путь сборки вашего проекта настроен таким образом.

Связанные папки IMHO для внешние файлы, а не другие проекты.

Другая проблема заключается в том, что если вы просто ссылаетесь на банку как на зависимость (то есть на пути к проекту), eclipse не сможет знать, что сборник был построен на основе источника другого проекта, поэтому он не будет правильно реорганизоваться ,

Попробуйте спросить своих коллег о файлах проекта eclipse (.project и .classpath) и отредактируйте файлы, если вам нужно, а затем проверьте, не работает ли ваш рефактор. Я предполагаю, что ваш проект настроен иначе, чем ваши коллеги.

Смежные вопросы