Support for multiple modules in one JAR-File
Stefan Fuchs
snfuchs at gmx.de
Sat Sep 12 09:49:50 UTC 2015
Hi,
reading the State of the Module System, I got the impression that a
modular jar file can only contain one module.
However, many applications, I have seen, fold all its dependencies into
one big jar file (See [1]m [2] and [3] for tool support).
This is done to:
* reduce startup times for webstart applications
* ease distribution and deployment
* enable efficient obfuscating of the resulting jar (see [4])
So I think it is critical to support multiple modules in one jar file,
if the module system is to be adopted beyond the jdk.
In this context I find the convention, of placing a module-info.java or
module-info.class in the root of the jar file, a poor choice.
It should be named after the module name (e.g.:
com-foo-bar-module-info.java).
Besides, I think using a simple text file to declare the module
dependencies would have been the better option.
No special tools would be needed to inspect the dependencies of a jar
file, when the source is not available.
- Stefan
[1]
https://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html#jar-with-dependencies
[2] https://github.com/shevek/jarjar
[3] https://ant.apache.org/manual/Tasks/jar.html
[4] http://proguard.sourceforge.net/
More information about the jpms-spec-comments
mailing list