Рубрики
Без рубрики

Обновленная информация о состоянии модульности Java

В начале 2019 года я писал о состоянии модульности Java. Я взял образец широко распространенного… Помечено java, jpms, модульность, jigsaw.

В начале 2019 года я писал о состоянии модульности Java . Я взял выборку широко распространенных библиотек и для каждой из них проверил, есть ли:

  1. Он поддерживает модульную систему т.е. он предоставляет автоматическое имя модуля в манифесте
  2. Это полноценный модуль т.е. он предоставляет модуль-в

Результаты были интересными. 14 из этих 29 библиотек поддерживали модульную систему, в то время как 2 были самостоятельными модулями.

Почти 2 года спустя, когда Java 16 уже не за горами, пришло время обновить отчет. Я сохранил те же библиотеки и добавил Hazelcast и Hazelcast Jet. Я проверил последнюю версию.

Я проверил последнюю версию. SLF4J Струя лесного ореха p6 шпион
Я проверил последнюю версию. Джексон 2.11.8 Первая проверка 2.11.3
GSon 2.8.5 Первая проверка 2.8.6
Я проверил последнюю версию. Юнит 5.3.2 Первая проверка 5.7.0
Я проверил последнюю версию. Мокито 2.23.4 Первая проверка 3.5.15
Блок питания 2.0.0-RC.4 2.0.7
Я проверил последнюю версию. Общий язык 3.8.1 Первая проверка 3.11
Математика общего пользования 3.6.1 Нет нового выпуска
Я проверил последнюю версию. Гуава 27.0.1 Первая проверка Нет нового выпуска
Я проверил последнюю версию. Http-Клиент 4.5.6 Первая проверка 4.5.13
Ксерксы 2 2.12.0 Нет нового выпуска
XStream 1.4.11.1 1.4.13
дом4j 2.1.1 2.1.3
Я проверил последнюю версию. ДЖАКСБ 2.3.1 Нет нового выпуска
Apache POI 4.0.1 4.1.2
Общий пул 2.6.0 Первая проверка 2.9.0
Я проверил последнюю версию. Гибкая катушка 2.1.1 Первая проверка 2.2.3
Я проверил последнюю версию. ХикариКП 3.2.0 3.4.5
DBCP общего пользования 2.5.0 2.8.0
Это текст 5.5.13 5.5.13.2
щеголь 2.3 2.5
Я проверил последнюю версию. Коллекции Commons 4.2 Первая проверка 4.4
Я проверил последнюю версию. Коллекции Eclipse 9.2.0 Первая проверка 10.4.0
Клад 3.1.0 Нет нового выпуска
Электронная почта общего пользования 1.5 Нет нового выпуска
Я проверил последнюю версию. JSoup 1.11.3 Первая проверка 1.13.1
Я проверил последнюю версию. Кодек общего пользования 1.11 Первая проверка 1.15
P6 ШпИон 3.8.1 p6 шпион 3.9.1
ПротоБуф 3.8.1 p6 шпион 3.13.0
4.0.1 Лесной орех Первая проверка p6 шпион
4.2 Струя лесного ореха Первая проверка p6 шпион

Анализ

Oracle выпустила Java 9 в сентябре 2017 года. Через три полных года после этого выпуска 10 из 31 библиотеки по-прежнему не предоставляют JAR, совместимый с модулем. Конечно, 3 из них за это время не выпустили новую версию. Это все еще 7 библиотек, которые не добавили простую строку текста в свой MANIFEST.MF .

С хорошей стороны, Джексон, GSon и Junit перешли на модульную систему. Это не тривиальное усилие и заслуживает некоторой похвалы.

С другой стороны, SLF4J мигрировал обратно из системы модулей в автоматическое имя модуля. Это проблема. Если разработчики решат использовать модульную систему и объявят зависимости своего приложения, они не смогут обновлять библиотеки, которые следуют этой практике. Я не знаю, что с этим делать.

Я проверил новую версию v2 (все еще в альфа-версии), и в ней даже нет Имени автоматического модуля .

Вывод

До написания этого поста я предполагал, что проникновение JPMS в экосистему было практически нулевым. Я приятно удивлен. Однако, хотя прогресс и есть, он медленный. И модульность вашего приложения, если у вас есть немодуляризованные зависимости, не является тривиальной .

Идти дальше:

Контейнеризация приложений с помощью jlink Mod It и т. Д. – Инструментарий для системы модулей Java, Первоначально опубликованный на Контейнеризация приложений с помощью jlink Mod It и т. Д. – Инструментарий для системы модулей Java, Первоначально опубликованный на Java Geek Контейнеризация приложений с помощью jlink Mod It и т. Д. – Инструментарий для системы модулей Java, Первоначально опубликованный на Java Geek 25 октября Контейнеризация приложений с помощью jlink Mod It и т. Д. – Инструментарий для системы модулей Java, Первоначально опубликованный на Java Geek 25 октября , 2020

Оригинал: “https://dev.to/nfrankel/update-on-the-state-of-java-modularization-28nn”