#CompileTimeDependencies and module resolution

Remi Forax forax at univ-mlv.fr
Fri Jan 13 11:08:09 UTC 2017

Hi Sander,
you're right, it's a bug, --add-modules should not be necessary.


----- Mail original -----
> De: "Sander Mak" <sander.mak at luminis.eu>
> À: "jigsaw-dev" <jigsaw-dev at openjdk.java.net>
> Envoyé: Vendredi 13 Janvier 2017 11:39:10
> Objet: #CompileTimeDependencies and module resolution

> When you have a module A with an optional dependency on B (`requires static B`),
> module B is not resolved from the module path unless `--add-modules B` is
> provided at startup (tested with jigsaw-b151). In [1] this is mentioned as a
> detail, and in fact  it is phrased as a question there. Is this still an open
> question? Because in my mind, expressing an optional dependency *and* having to
> add the module as root module to get it resolved seems a bit over the top (and
> typically you'd also have to add it as dependency in your build tool of choice
> to get it on the module path).
> "If it's on the module path, use it, otherwise, ignore it" is intuitively more
> appealing to me for optional dependencies. It also more closely resembles the
> way things currently work on the classpath with many frameworks.
> For linking, I can see why adding optional modules explicitly is better. Still,
> I think not having to do this at run-time (just like service provider modules
> are resolved at run-time but not at link-time) makes more sense.
> Regards,
> Sander
> [1] http://openjdk.java.net/projects/jigsaw/spec/issues/#CompileTimeDependences

More information about the jigsaw-dev mailing list