Как исключить папку, которая создает предупреждения/ошибки в проекте Eclipse?

Хорошо. Мне надоело эту проблему. Это должно быть легко исправить, я уверен в этом! Я надеюсь, что SO поможет мне избавиться от этого раз и навсегда!

Вопрос

Как заставить Eclipse прекратить попытки обрабатывать/компилировать все файлы под конкретный каталог проекта? цель заключается в отсутствии ошибок/предупреждений существуют в представлении проблем, если они относятся к чему-то в этой папке или к подпапкам.

Фон

Мы запускаем Eclipse 3.6, а плагин m2eclipse v0.10.2.20100623 управляет нашим автообъектом. По причинам, не зависящим от меня, у нас есть весь дистрибутив BlazeDS в нашем каталоге проектов SVN под src/main/resources/blazeds. По сути, этот каталог содержит ванильное распространение tomcat, запускающее blazeds, к которому добавляются все наши файлы конфигурации и проекта при развертывании на наш сервер через SCP.

Итак, когда мы запускаем развертывание, эта версия tomcat копируется на сервер, и наш проект помещается внутри. Tomcat и наше приложение RIA работают, и все в порядке.

Проблема заключается в том, что Eclipse пытается скомпилировать все под src/main/resources/blazeds при запуске AutoBuild, и это порождает около 300 ошибок/предупреждений в нашем представлении проблемы. Поэтому, когда возникает реальная ошибка, она теряется среди шума.

Ошибки связаны с кодом в /blazeds/tomcat/webapps/samples/testdrive-datapush, а также с примерами веб-приложений testdrive-httpservice, traderdesktop. У них есть зависимый исходный код, который не относится к классам и банкам, которые не включены в библиотеки.

Неудачные попытки решения

Я пытаюсь подтолкнуть правильное решение: полностью удалить образцы, а также избавиться от контроля версий. Это не происходит в ближайшее время.

Я следил за Ответом здесь здесь, но это только очень временное решение. Я пробовал добавлять исключения везде, о чем я могу думать, и другие члены моей команды сделали то же самое. Я удалил src/main/resources в качестве исходного каталога (в настройках > Java Build Path > Source Tab). Я добавил исключения для blazeds в каталог ресурсов. Я пробовал каждую перестановку blazeds и ** как в *blazeds*, **/blazeds/** и т.д.

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

Резюме

Это должно быть просто. Что это обычный способ исключения папки который создает предупреждения/ошибки в проект затмения?


Обновление # 1:
Решение gedim ниже достойно, но оно 1) не очищает красный X от проекта
2) - это изменение, которое должны выполнять все члены нашей команды вручную (т.е. Не в файле свойств проекта, тем самым он не проверяется на подрывную деятельность)

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


Обновление # 2:

На рисунке ниже показан красный X, который я пытаюсь очистить, и что Build Path > Exclude
не вариант...

Red X's won't go away

Ответ 1

Вы можете использовать Configure Contents... в меню панели Problems. Там вы можете создать новую конфигурацию и задать область On Working Set:. Нажмите Select... и создайте новый рабочий набор, который исключает папки, которые вам не нужны.

Ответ 2

Я столкнулся с подобной проблемой и разрешил ее, переместив папку в папку проекта. Затем я пошел:

  • Проект > Свойствa > Ресурs > Фильтры ресурсов > Добавить...
  • Установить Тип фильтра = Исключить все.
  • Установить Применяется к = Папки.
  • Установить Атрибуты файлов и папок = {Name, matches, < your_folder_name > }

Ответ 3

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

Обновление 6/19/2012. Eclipse Juno 4.2M6 поддерживает игнорирование проблем для конкретной исходной папки. Эта функция доступна в диалоговом окне "Путь Java". См. примечание к выпуску.

Ответ 4

Если вы действительно хотите исключить определенные классы/пакеты из autobuild, вы можете просто щелкнуть их правой кнопкой мыши и выбрать "Путь сборки" → "Исключить"

alt text

Ответ 5

Настройте свой проект (Project/Properties/Java Build Path/Source) вместо папки верхнего уровня src с исключениями, просто список папок, которые вы хотите скомпилировать.

Предполагая Eclipse Helios, шаг за шагом:

  • Отключить автообъединение (Project/Build Автоматически).
  • Начните с этого пустым.
  • Удалите ошибки, щелкнув правой кнопкой мыши как в ссылке (просто чтобы быть уверенным).
  • Добавить оригинальные папки с папками 1 на 1 (Project/Properties/Java Build Path/Source/Add Folder)
  • Сделайте явное построение (Project/Build Project).

Если это сработает, вы сможете снова включить автооблигацию. Если это не так, что-то странное происходит. Возможно, проект не использует стандартный Java Builder, а что-то вроде Ant Builder (Project/Properties/Builders).

Ответ 6

Перейти к пути сборки Java → Источник → Добавить папку

Выберите правильные папки, которые должны быть частью пути сборки

В приведенном выше снимке экрана src/main/resources необходимо удалить из сборки, поскольку это приводит к ошибке компиляции [неправильный идентификатор пакета]. Следовательно, включите папку до src/main/resources.

Я попытался создать путь → Исключить. Это фактически не решает проблему. хотя маркер RedX очищается от Eclipse, он больше не будет прав Java-проектов. Возможно, пользователь не сможет запускать JUnit Test case/debug и т.д.

Но включив правые папки, мы можем продолжить работу с Java Project.

Ответ 7

Так как файлы в папке ресурсов редко меняются, я предлагаю поместить их во второй проект (где вы можете установить различные параметры предупреждения), а затем получить доступ к этому через относительный путь (например, ${basedir}/../special-tomcat).

Ответ 8

Наилучший подход - использовать параметр "Включение и исключение шаблонов" в пути построения Java.
Например, если вы хотите исключить один проект для автоматической сборки:
1- Перейдите в Свойство Properties → Java Build Path → Source.
2- Разверните папку в папке "Исходные папки на пути сборки:"
3- Выберите "Исключить" → "Редактировать"
4- В шаблонах исключения добавьте **
Примечание: для получения дополнительной информации об этих шаблонах: Шаблоны включения и исключения