Как я могу отключить предупреждения компилятора в Eclipse для конкретного файла?

В моем проекте Eclipse есть несколько сгенерированных файлов .java, которые мне нужно использовать для SQLJ, и я не могу перейти в отдельный проект (из-за административных накладных расходов). Эти файлы также регулярно регенерируются, поэтому их редактирование, к сожалению, невозможно.

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

Есть ли способ в Eclipse сказать «Игнорировать все предупреждения для каждого файла»? Или я могу заблокировать определенный подкаталог?


person kutuzof    schedule 02.09.2010    source источник


Ответы (5)


Представление «проблемы» в eclipse можно фильтровать; У меня всегда установлено значение «только для выбранного элемента и его дочерних элементов». Конечно, это скорее обходной путь, но он уменьшает влияние наличия файлов в одном проекте. (Обратите внимание, что даже если они должны быть в одном проекте, вы можете хранить их в отдельной исходной папке).

Редактировать: чтобы настроить фильтры, найдите значок со стрелкой вниз с подсказкой «Меню просмотра» в правом верхнем углу представления проблем. Нажмите на нее, а затем нажмите «Настроить содержимое».

person meriton    schedule 05.09.2010
comment
Я попытался отфильтровать представление о проблемах в рабочем наборе. Выбранные элементы и только их дочерние элементы на самом деле довольно милы! - person kutuzof; 10.09.2010
comment
Уточните, пожалуйста, как фильтровать просмотр проблем. Это не очевидно. - person wberry; 06.04.2012
comment
Мило, но недостаточно. Вы не можете скрыть оба предупреждения, содержащие мертвый код и необработанный тип. Вы не можете показать все предупреждения, кроме как в папке X. - person Florian F; 29.01.2015

Убедитесь, что файлы находятся в папке gen, типичной домашней папке для всех сгенерированных файлов .java. Затем в свойствах проекта в разделе Путь сборки Java установите для параметра Игнорировать необязательные проблемы компиляции для этой папки значение Да.

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

person Edward Brey    schedule 10.10.2013
comment
Очень полезно. Кажется, это то, о чем просил ОП, и мне нужно было то же самое. - person StellarVortex; 21.06.2014
comment
Это - ответ на вопрос - person mvera; 09.07.2014
comment
Я считаю, что это и ответ на вопрос ОП. Чтобы использовать этот подход с проектом Maven, я отправляю все сгенерированные файлы в src/main/gen и использую решение Edwards. - person bigleftie; 27.07.2014
comment
Это должны быть принятые ответы, поскольку это может быть лучшей практикой (например, Android в настоящее время использует исходный каталог gen) - person usr-local-ΕΨΗΕΛΩΝ; 17.10.2014
comment
У меня нет указанной опции в пути сборки Java. О какой версии Eclipse идет речь? - person Florian F; 29.01.2015
comment
@FlorianF Eclicpse 4.2.1, инструменты разработчика Android 23.0.2.1259578. Убедитесь, что вы находитесь на вкладке Источник. Если вы развернете Android/gen, вы должны увидеть узел Игнорировать необязательные проблемы компиляции в дереве, который вы можете выбрать, а затем нажать Переключить. - person Edward Brey; 29.01.2015
comment
Я понимаю. Я использую MyEclipse, основанный на Eclipse 3.7. Может быть, поэтому. Время обновить. - person Florian F; 29.01.2015

@SuppressWarning аннотации?

Per, комментарий Стивена, вы можете найти «Здесь параметр настроек компилятора для каждого проекта»

Проект->Свойства->Компилятор Java->Ошибки/Предупреждения

Включить специальные настройки проекта

альтернативный текст

person bdhar    schedule 02.09.2010
comment
Тоже хорошо. Проблема в том, что файлы SQLJ находятся в одном проекте, и многие предупреждения полезны для других файлов. Мне нужны конкретные настройки файла... - person kutuzof; 05.09.2010
comment
Javadoc для @SuppressWarning не очень помогает понять, как его использовать. Ему не хватает примеров. - person dolmen; 03.05.2013
comment
Документация Eclipse о @SuppressWarning более подробная. Смотрите мой собственный ответ. - person dolmen; 03.05.2013

Один из способов сделать это — добавить аннотации @SuppressWarning(...) к исходному коду.

Другой способ — перенести проблемный код в отдельный проект Eclipse и использовать настройки компилятора для каждого проекта.

ИЗМЕНИТЬ

Конечно, вы можете разделить свой код на несколько проектов с соответствующими межпроектными зависимостями?

Если нет, я бы сказал, что у вас нет реальных вариантов. (Но если вам нужны какие-то нереалистичные, вы можете постобработать сгенерированный код, чтобы добавить аннотации, взломать компилятор Eclipse Java, чтобы реализовать подавление для каждого файла, взломать представление «Проблемы» Eclipse, чтобы реализовать фильтрацию для каждого файла/каталога ошибки и тд и тп)

person Stephen C    schedule 02.09.2010
comment
+1 к настройкам компилятора для каждого проекта. Узнал новое!! - person bdhar; 02.09.2010
comment
Да это хорошо. Проблема в том, что файлы SQLJ регулярно генерируются заново (каждый раз, когда кто-то меняет SQL). Таким образом, все @SuppressWarning (все) исчезают. - person kutuzof; 05.09.2010

Если вы хотите скрыть предупреждения для класса или метода, см. документацию по Eclipse на странице @SuppressWarnings аннотация или документация по Java

Пример:

@SuppressWarnings("unused")
public void foo() {
    String s;
}
person dolmen    schedule 03.05.2013
comment
Это не работает, потому что файлы регулярно генерируются. Поэтому каждый раз мне приходилось вручную добавлять @SuppressWarning к десяткам файлов. - person kutuzof; 15.12.2014