Presumably this is a javac lint warning about how types referenced from
an exported API (e.g., the return type of an exported public method)
should themselves be exported.
It's hard to tell from
https://docs.oracle.com/en/java/javase/16/docs/specs/man/javac.html#option-Xlint-custom
exactly wh
Thanks to you both for the advice.
Following on your suggestions, Caffeine changed to "requires static".
However, javac now produces a warning about the lack of transitivity:
warning: [exports] class Nullable in module
org.checkerframework.checker.qual is not indirectly exported using
requires tr
Even without `transitive`, requiring modules with `static` means that
anyone who habitually builds their entire stack from source will still
need the errorprone and checker-qual modules at compile time.
There are no "run-time only" dependencies in module declarations, unless
services come into
- Mail original -
> De: "Anand Beh"
> À: "jigsaw-dev"
> Envoyé: Jeudi 3 Juin 2021 22:10:11
> Objet: Annotation Dependencies and Requires Static Transitive
> Hello,
>
> The cache library Caffeine recently added a full module descriptor. It
>
Hello,
The cache library Caffeine recently added a full module descriptor. It
has no runtime dependencies, but it depends on metadata annotations
from checker-qual and errorprone, for example @NotNull and
@CanIgnoreReturnValue. The module looks like this:
module com.github.benmanes.caffeine {
ex