Findbugs Annotations - Нужны ли мне annotation.jar и jsr305.jar в моем развернутом коде? - PullRequest
18 голосов
/ 18 февраля 2010

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

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

Ответы [ 2 ]

11 голосов
/ 18 февраля 2010

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

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

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

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

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

8 голосов
/ 26 августа 2010

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

...