Good question. IntelliJ specifies Runtime retention so they can interact with IntelliJ's internal JRE, which adds additional assertions into the code to enforce the annotations. So even though they have Runtime retention, they're still a development-phase tool. In production, they don't need to be retained at runtime. Personally, I never need the Runtime retention feature, so if we write our own annotations, we can give them compile-time retention and they'll work fine. That's often how I work. In fact, I often use my own annotations, which don't have Runtime retention, and they work fine, so I don't miss that feature.
— Miguel Muñoz On Tue, Aug 25, 2020 at 12:36 PM Jochen Wiedmann <jochen.wiedm...@gmail.com> wrote: > On Tue, Aug 25, 2020 at 9:08 PM sebb <seb...@gmail.com> wrote: > > > AFAIK that means Maven won't download the dependency. > > Surely that makes it harder for the developer? > > No, it means that Maven won't add the dependency to a distribution. > > However, I've got a question: These annotations have > @Retention(Runtime). (See > > https://www.javadoc.io/doc/com.google.code.findbugs/jsr305/latest/javax/annotation/Nullable.html > .) > Aren't we enforcing the presence of the respective jar at runtime? > > > Jochen > > -- > > Look, that's why there's rules, understand? So that you think before > you break 'em. > > -- (Terry Pratchett, Thief of Time) > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > >