Подтвердить что ты не робот

Почему Java 9 представила формат файла JMOD?

Java 9 имеет три способа упаковать скомпилированный код в файлы:

  • JAR
  • JMOD
  • JIMAGE

JIMAGE оптимизирован для скорости и пространства и используется JVM во время выполнения, поэтому имеет смысл, почему был введен JIMAGE. Файлы JIMAGE не должны публиковаться в репозитории maven или использоваться во время компиляции или ссылки.

Документы утверждают, что JMOD может хранить собственный код и другие вещи, которые нельзя хранить в файлах JAR, и что разработчики могут создавать и распространять свои собственные файлы JMOD. JDK поставляется с каталогом jmods/, содержащим все модули JDK, для которых пользователи могут зависеть.

Вопросы:

  • Почему Java 9 представила формат файла JMOD?
  • Должен ли автор библиотеки распространять файл JMOD или файл JAR или оба?
  • Должны ли файлы jmod публиковаться в maven repos?
4b9b3361

Ответ 1

Вот некоторые цитаты из JEP 261: Система модулей, которая содержит раздел о файлах JMOD.

Почему?

Из JEP 261:

Новый формат JMOD выходит за рамки JAR файлов, чтобы включить собственный код, файлы конфигурации и другие типы данных, которые не подходят естественно, если вообще, в файлы JAR.

и

Окончательный формат файлов JMOD является открытой проблемой, но пока это на основе файлов ZIP.

Должен ли разработчик публиковать файлы JMOD?

Обратите внимание, что файлы JMOD выглядят как способ включить собственный код (между прочим) во время компиляции и времени ссылки. Из JEP 261:

Файлы JMOD могут использоваться во время компиляции и времени ссылки, но не при запуске время.

(Честно говоря, я не уверен, как печатается собственный код pre-JDK 9.) Для подавляющего большинства разработчиков (без родных библиотек или других угловых случаев) мы будем публиковать только модульные банки.