Как исключить папку, которая создает предупреждения/ошибки в проекте 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- В шаблонах исключения добавьте **
Примечание: для получения дополнительной информации об этих шаблонах: Шаблоны включения и исключения