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

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

Вопрос

Как заставить 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. У них есть зависимый исходный код, который не находится в пути к классам, и jar-файлы, которые не включены в библиотеки.

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

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

Я следил за ТАК ответьте здесь, но это временное решение. Я пробовал добавлять исключения везде, где только мог подумать, и другие члены моей команды сделали то же самое. Я удалил src/main/resources как исходный каталог (в настройках> Путь сборки Java> Вкладка «Исходный код»). Я добавил исключения для blazeds в каталоге ресурсов. Я пробовал каждую перестановку blazeds и **, как в *blazeds*, **/blazeds/** и т. Д.

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

Резюме

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


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

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


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

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

Красные крестики никуда не денутся


person gMale    schedule 17.09.2010    source источник
comment
Путь сборки ›Исключить - хорошее решение. Он отлично работает в Eclipse Juno для изменения пути сборки Java.   -  person IgorGanapolsky    schedule 14.08.2012


Ответы (8)


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

person Giorgos Dimtsas    schedule 17.09.2010
comment
Спасибо за ваш ответ! Это работает лучше, чем то, что мы делали раньше, но имеет две проблемы. Что наиболее важно, это не изменение, которое проверяется контролем версий. Так что я должен пройтись к другим моим коллегам и попросить их сделать это. Во-вторых, он все еще пытается скомпилировать классы. Итак, с левой стороны я все еще вижу красные крестики в папках моего проекта верхнего уровня над каталогом src / main / resource / blazeds. Помимо этих проблем, это просто фантастика! Проблемы больше не отображаются в режиме просмотра проблем !! Я ничего не знал об этой особенности Eclipse. - person gMale; 17.09.2010
comment
7 лет спустя, до сих пор не могу понять, как подавить красный x: / - person Ray; 02.01.2017

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

  1. Проект> Свойства> Ресурс> Фильтры ресурсов> Добавить ...
  2. Установите Тип фильтра = Исключить все.
  3. Установите Применимо к = папкам.
  4. Установите Атрибуты файлов и папок = {Имя, совпадения, ‹your_folder_name>}
person TIER 0011    schedule 15.12.2012
comment
Это должен быть принятый ответ. Другой подход не работает для подпапок внутри проектов. - person Usman Ismail; 09.06.2014
comment
Вздох ... У меня похожая проблема. В моем проекте есть (виртуальные) папки с источниками, то есть источники находятся в другом месте. Мне нужно исключить некоторые из этих папок из сборки. Я использовал указанный выше фильтр ресурсов и также установил исключить из сборки для той же папки. Теперь папка затенена, но все источники из нее все еще создаются. - person Petr Vepřek; 18.12.2015
comment
Теперь это работает. Проблема заключалась в том, что проект был настроен как проект C, в то время как некоторые из связанных источников были C ++. После переключения проекта на C ++ включение и отключение связанных папок, похоже, работает нормально. - person Petr Vepřek; 18.12.2015
comment
Отлично работал с GWT и папкой .apt_generated. Спасибо! - person Faliorn; 13.02.2016
comment
В моем случае не помогает - это препятствует включению папки в сборку. - person simon; 24.02.2016
comment
иногда по неизвестной причине он не работает из проекта. Но он работает из родительской папки, поэтому щелкните правой кнопкой мыши родительские папки - ›свойства -› ресурсы - ›и т. Д. - person amdev; 22.08.2016
comment
Это также скрывает папку. Я хочу, чтобы там была папка с ужасным устаревшим кодом, только не предупреждайте меня обо всех ошибках. - person Ray; 02.01.2017

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

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

person Rhett Hudson    schedule 28.10.2011
comment
Мне кажется, что из ошибок / предупреждений можно исключить только source папки. То, что кажется наиболее недостающим / полезным, - это возможность игнорировать предупреждения в target папках, поскольку они содержат сгенерированный код, в котором вы все равно не можете исправить предупреждения (на данный момент у меня есть несколько таких предупреждений в некоторых проектах ). - person Svend Hansen; 01.08.2012

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

alt text

person nanda    schedule 20.09.2010
comment
К сожалению, это не сработало. Но спасибо за ответ! Я был рад попробовать это. Однако исключить нельзя здесь в src/main/resources. Я обновил свой вопрос изображением. Исключить - это вариант в моих исходных папках. Я не понимаю, почему эта дурацкая штука пытается скомпилировать !! - person gMale; 20.09.2010
comment
Исключения нет, потому что вы его исключили :). Можете ли вы попробовать скопировать одну ошибку, которую вы получаете из папки здесь? И могу ли я получить более четкое представление о том, что скрывается за этим всплывающим меню? - person nanda; 20.09.2010
comment
точно, нет оправдания! Я начинаю задаваться вопросом, является ли это ошибкой, потому что в прошлом году такой проблемы не было. Все ошибки являются допустимыми ошибками, связанными с отсутствием jar-файлов и т. Д., Как в Feed cannot be resolved to a type. Глупый Eclipse: поскольку этот исходный код не используется, конечно, банок нет! Я могу устранить ошибки, добавив всевозможные ссылки на папки lib и исходные папки в настройки моего проекта, но это не желаемое решение. Это сбивает с толку окружающих и чрезмерно усложняет настройку проекта :( - person gMale; 23.09.2010

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

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

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

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

person soru    schedule 23.09.2010
comment
спасибо за ваше предложение. К сожалению, он не использует стандартный конструктор java. Это проект Maven, и по какой-то странной причине он пытается создавать элементы, не являющиеся исходными папками. - person gMale; 25.09.2010
comment
Многие параметры конфигурации предназначены только для построителя java. Поэтому вам нужно заглянуть в настройки конфигурации Maven. Наверное, вот эта штука: - person soru; 26.09.2010

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

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

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

Я пробовал Build Path -> Exclude. На самом деле это не решает проблемы. то есть, хотя отметка RedX удалена из Eclipse, это больше не будет правильными проектами Java. Т.е. пользователь может не иметь возможности запускать тестовые примеры / отладку JUnit и т. Д.

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

person Sowmya Rao    schedule 12.08.2016

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

person Aaron Digulla    schedule 22.09.2010
comment
Спасибо за ваше предложение, как я уже сказал: I'm trying to push the proper solution: to remove the samples completely and also to get blazeds out of our version control. That's not happening anytime soon. По независящим от меня причинам я не могу принять ваше решение, но мне нравится идея использовать другие проекты для таких целей. - person gMale; 23.09.2010
comment
Вы можете использовать мой ответ, чтобы поддержать свой аргумент об изменении этого аспекта проекта (например, внешний экспорт предположил, что это лучшее решение). - person Aaron Digulla; 24.09.2010
comment
Вот и все. Я ворваюсь на встречу в понедельник и требую: «Если это хорошо для Дигуллы, то этого достаточно для нас!» :) - person gMale; 25.09.2010
comment
Вот как работают консультанты: они говорят вам то, что все уже знают, но, поскольку это извне, никто не теряет лица, когда они соглашаются с чем-то, что они ранее блокировали. - person Aaron Digulla; 27.09.2010

Наилучший подход - использовать параметр «Шаблоны включения и исключения» в пути сборки Java.
Например, если вы хотите исключить один проект из автоматической сборки:
1- Перейдите в его Свойства-> Путь сборки Java-> Источник.
2- Разверните папку в области «Исходные папки на пути сборки:»
3- Выберите Exclude-> Edit
4- В шаблонах исключения добавьте **
Примечание. : для получения дополнительной информации об этих шаблонах: Шаблоны включения и исключения

person Javi    schedule 22.08.2013