2010-07-15 3 views
8

Я заметил, что «иногда» ресурсы, которые я помещал в исходную папку в моем проекте Eclipse, не будут немедленно скопированы в выходную папку («bin»).
E.g. Я изменяю файл свойств с помощью редактора eclipse и сохраняю ... и «bin» все еще имеет старую версию.Когда Eclipse копирует ресурсы в выходную папку?

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

- EDIT -

Чтобы пояснить, что я имел в виду, вызывая его из плагина: У меня есть плагин, который зависит от до даты ресурсов в папке вывода, но, видимо, ресурсы устарели, когда мой плагин называется. И поэтому мне нужно лучше понять, что происходит и как я могу заставить его, когда мне нужно.

ответ

2

Это является Bug практически во всех версиях Eclipse, это происходит без какой-либо причины , Мои eclipse 3.5.2 и 3.6.2 оба встречают эту проблему в какой-то момент. В моем случае мне нужно скопировать измененные исходные файлы .clj clojure в каталог классов для немедленной проверки в веб-приложении, теперь мне нужно установить/src before/classes в CLASSPATH сценария запуска веб-приложений, он временно разрешает мою проблему.

+2

Поскольку никто не может объяснить это, я напишу его как «ошибка». Было бы здорово, если бы мы могли найти официальный отчет об ошибке затмения. – Stroboskop

0

Насколько я знаю, это происходит, когда вы строите проект. Вам не нужен плагин, вам просто нужно сказать eclipse, чтобы сделать сборку проекта.

+1

вам нужно «автоматически построить» в меню проекта, чтобы оно выполнялось само по себе. Если вы это сделаете, и он все равно этого не сделает, вам может потребоваться добавить папку, содержащую файл, в путь сборки. Тот факт, что вы сказали, что выходная папка содержит «старую» версию, указывает на то, что она находится на пути сборки и в какой-то момент была скопирована. Но если вы просто добавили его, и нет «старой» версии, вам может понадобиться обновить проект, чтобы посмотреть, был ли он также перемещен в выходной папке. –

+0

Это не он. Иногда выходная папка обновляется. например когда я делаю чистую или когда запускается рабочее пространство. Файл находился в том же месте, был отредактирован с использованием eclipse, и мои источники Java в том же проекте были созданы и скопированы автоматически. – Stroboskop

7

Если вы не добавляете ресурс через eclipse (но, например, через проводник Windows), eclipse не будет замечать некоторые изменения, пока вы не обновите свой проект/папку. (например, щелчок правой кнопкой мыши в проводнике пакета).

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

+0

это «часто» часть, которая меня беспокоит, так как она не возникает во время фазы сборки в моей тестовой среде. – Stroboskop

+0

Если вы создаете подключаемый модуль Eclipse, вы можете обновить его из плагина. Взгляните на интерфейс IProject. –

+0

@Stroboskop: для Java-проектов его настройка в меню сборки, которая включена по умолчанию.Для других проектов это зависит от типа проекта и плагина. – Thirler

0

Как сказал @Thirler, если вы не добавите ресурс через Eclipse, он может не заметить файлы до обновления вашего проекта. Однако, если Refresh/Clean не работает (в моем случае это не так), вы должны добавить файлы в структуру папок IN ECLIPSE.

Просто перетащите файл из папки, где он находится в файловой системе, с помощью Finder/Windows Explorer, поместите его в ту же папку в Project Explorer Project (Eclipse попросит перезаписать, просто скажите «да») и Voila!

EDIT: Простым способом является просто перейти в папку с помощью Project Explorer, а затем Refresh (F5).

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