Подтвердить что ты не робот

Findbugs Annotations - Мне нужен annotation.jar и jsr305.jar в моем развернутом коде?

Итак, я хотел бы использовать аннотации findbugs для подавления предупреждений, которые мы считаем нормальными.

Нужно ли развертывать annotation.jar и jsr305.jar в нашей производственной среде или нам нужны только эти банки в пути к классам для нашего проекта Eclipse и нашей среды сборки unix?

4b9b3361

Ответ 1

Аннотации имеют различные политики хранения:

  • SOURCE - не в файле класса, отброшенном компилятором (не требуется во время выполнения)
  • CLASS - в файле класса, но VM может отбросить их.
  • RUNTIME - доступно для отображения во время выполнения

Логика указала бы, что аннотации сохранения SOURCE не понадобятся во время выполнения, CLASS не должен, и RUNTIME должен быть доступен.

Быстрый взгляд на аннотации JSR 305 показывает, что они используют политику хранения RUNTIME (пример), что указывает мне, что эти банки действительно необходимо загрузить классы во время выполнения, чтобы удовлетворить контракт аннотации.

Но я сам этого не проверял.

Ответ 2

Per мой связанный вопрос, вы обычно не сталкиваетесь с какими-либо проблемами, если эти аннотации не присутствуют во время выполнения, хотя некоторые из них имеют @Retention(RUNTIME).