Java 9 имеет три способа упаковать скомпилированный код в файлы:
- JAR
- JMOD
- JIMAGE
JIMAGE оптимизирован для скорости и пространства и используется JVM во время выполнения, поэтому имеет смысл, почему был введен JIMAGE. Файлы JIMAGE не должны публиковаться в репозитории maven или использоваться во время компиляции или ссылки.
Документы утверждают, что JMOD может хранить собственный код и другие вещи, которые нельзя хранить в файлах JAR, и что разработчики могут создавать и распространять свои собственные файлы JMOD. JDK поставляется с каталогом jmods/
, содержащим все модули JDK, для которых пользователи могут зависеть.
Вопросы:
- Почему Java 9 представила формат файла JMOD?
- Должен ли автор библиотеки распространять файл JMOD или файл JAR или оба?
- Должны ли файлы jmod публиковаться в maven repos?