Как использовать опции --hash-modules и --module-path при работе с jar-утилитой в Java 9?

204
30 июля 2017, 07:54

Я хотел бы добавить хеш-информацию к моим модулям, которые находятсяв в jar-файлах. Для этого я воспользовался опциями --hash-modules и --module-path jar утилиты.

Вот примеры использования мною данных опций:

jar --hash-modules com.me.util --module-path "dist\com.me.jar;dist\com.me.util.jar"  --update --file dist/com.me.jar --main-class=com.me.A --verbose --module-version 0.1 -C build/modules/com.me module-info.class build/modules/com.me/com/me/A.class build/modules/com.me/com/me/B.class
jar --hash-modules "com.me.util;com.me.util" --module-path "dist\com.me.jar;dist\com.me.util.jar"  --update --file dist/com.me.jar --main-class=com.me.A --verbose --module-version 0.1 -C build/modules/com.me module-info.class build/modules/com.me/com/me/A.class build/modules/com.me/com/me/B.class

Когда эти команды выполняются в строке вывода информации я получаю следующее предупреждающее сообщение:"no module is recorded in hash in com.me".

Эти команды создают *.jar файлы (модули) без каких-либо дополнительных ошибок, но не добавляют хеш информацию. Мне хотелось научиться правильно использовать данные опции утилиты jar. Пожалуйста, подскажите, как это правильно сделать!

Структура папок проекта здесь.

Мои эксперименты и рабочие примеры команд утилиты jar здесь.

Описание опций утилиты jar (Java 9) здесь.

Answer 1

После внимательного прочтения документации я понял, какие параметры должны быть у данной команды для решения поставленной задачи.

Примеры:

#Create module:
jar --hash-modules "com.me" --module-path "dist/com.me.jar" --verbose --create --file dist/com.me.util.jar -C build/modules/com.me.util module-info.class  build/modules/com.me.util/com/me/util/Util.class
jar --hash-modules "com.me" --module-path "dist/com.me.jar" -v -c -f dist/com.me.util.jar -C build/modules/com.me.util module-info.class  build/modules/com.me.util/com/me/util/Util.class
#Update module:
jar --hash-modules "com.me" --module-path "dist/com.me.jar" --verbose --update --file dist/com.me.util.jar -C build/modules/com.me.util module-info.class
jar --hash-modules "com.me" --module-path "dist/com.me.jar" -v -u -f dist/com.me.util.jar -C build/modules/com.me.util module-info.class

Чтобы посмотреть результат работы опций, используйте следующую команду:

jar --file dist/com.me.util.jar --describe-module

Результат:

com.me.util jar:file:///C:/my_ch1_9/dist/com.me.util.jar/!module-info.class
exports com.me.util
requires java.base mandated
hashes com.me SHA-256 85c0539e4ca9a01b00f4c29a1a8b01cd452d1d97f437166b8bb415046dac65cb
READ ALSO
кнопка submit JSP

кнопка submit JSP

В JSP я заполнил форму и отправляю кнопкой на сервер для обработки

267
Оптимизация html-страниц для пользователя

Оптимизация html-страниц для пользователя

Есть лендинг на yii2 с возможностью оставить коментарииК каждому можно оставить еще коментарий

292
Как правильно: свойство float в css или Flexbox

Как правильно: свойство float в css или Flexbox

Как в настоящее время правильно верстать с помощью свойства float в CSS или использовать FlexBox, если нужно расположить блоки горизонтально

303
Отсортировать блоки

Отсортировать блоки

Есть такая разметка (код):

266