excluding transitive module

Jochen Theodorou blackdrag at gmx.org
Tue Apr 14 08:24:34 UTC 2020


Hi all,

I am wondering if there is a solution purely in the module-info for this:

* Project requires Library1 and Library2
* SomeLibrary requires SharedApi
* OtherLibrary requires SharedApiImpl

The problem is, that it will not compile because SharedApi and
SharedApiImpl implement the same packages but not the same logic. One is
just an API, while the other is an implementation of the API.

Scenario 1:

What would seem to be logic to me is to exclude SharedApi, but does
SomeLibrary then need its requires to be changed to SharedApiImpl? How
would I do that if I cannot change SomeLibrary?

Scenario 2:

Let us assume I could change the module-info of SomeLibrary. How would I
express that Shared API is compilation only? Is that what "requires
SomeLibrary for compilation" would be for?

bye Jochen


More information about the jigsaw-dev mailing list