Подавление запрещенных Java предупреждений в файлах JSP

У меня есть устаревший webapp, который использует теги jstl и Struts 1. Когда я предварительно компилирую JSP файлы с помощью Java 5/6, теги jstl и Struts 1 генерируют предупреждения о "непроверенных или небезопасных операциях". Например, если я использую следующий тег:

<%@ page import="/anotherpage.inc" %>

Выдается следующее предупреждение:

[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.

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

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

Ответ 1

Эти сообщения являются обязательными для JDK >= 1.5), а не предупреждением.

compiler.note.unchecked.plural=\
    Some input files use unchecked or unsafe operations.

По умолчанию поведение компилятора совпадает с -Xlint:-unchecked.

С -Xlint:unchecked вы включаете предупреждение, сообщая о каждом экземпляре.

compiler.warn.unchecked.assign=\
    [unchecked] unchecked assignment: {0} to {1}
...

Обязательные примечания не могут быть отключены индивидуально, все они отключены с помощью -Xlint:none. К сожалению, остальные предупреждения также отключены.

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

Ответ 2

Вы правы, что

-Xlint:unchecked

делает противоположное тому, что вы хотите, но вы также можете использовать

-Xlint:-unchecked

Обратите внимание на дополнительные "-" там.

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

Ответ 3

лучший способ отключить это предупреждение - прекратить использование Java-кода в ваших JSP. Начните привыкать к использованию JSTL или JSF вместо этого (с помощью специальных тегов libs по мере необходимости).

Но с устаревшими приложениями вы вряд ли сможете это сделать, и вам просто придется жить с предупреждениями. Конечно, вы можете добавить флаг -nowarn в компилятор, но это отключит ВСЕ предупреждения, а не только это, что может быть больше, чем вы хотите.