Add automatic module names (JPMS) #1071
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is how this library is consumed in a Java 11 project:
Unfortunately, this produces the following warning:
That's because when a JAR does not contain a
module-info.class
Java assigns an automatic module name based on the JAR's name (for example,cloudfoundry-client-4.10.0.RELEASE.jar
->cloudfoundry.client
). The cheapest way to remove this warning is to define a custom automatic module name with the help of themaven-jar-plugin
. That way, Java wouldn't have to infer the module's name from the name of the JAR.See http://branchandbound.net/blog/java/2017/12/automatic-module-name/ for more info.
I've used the package names as module names (kind-of), since that's what's recommended by Mark Reinhold (see Proposal: #AutomaticModuleNames (revised)):
With this PR, the library would be consumable in the following way: