Команда jdeps не работает с атрибутом -p - PullRequest
1 голос
/ 27 февраля 2020

Когда я выполняю эту команду:

jdeps  --module-path out --module test

все в порядке и печатает всю информацию. Но когда я заменяю --module-path на -p, возникает исключение:

jdeps -p out --module test
Exception in thread "main" java.lang.module.FindException: Module test not found

Но согласно java мы можем заменить --module-path на -p:

--module-path to -p

Так почему же выдается исключение?

1 Ответ

0 голосов
/ 20 апреля 2020

Хотя параметры, как правило, согласуются для нескольких различных программ, это не относится к параметру -p. Документация Oracle для java гласит:

- путь к модулю-пути-модуля ... или -p модуль-пути
точка с запятой (;) разделенный список каталогов, в которых каждый каталог является каталогом модулей.

Но для jdeps это:

-p pkg name, -package pkg name или --package pkg name
Находит зависимости, соответствующие указанному имени пакета. Вы можете указать эту опцию несколько раз для разных пакетов.

Пример использования

Этот пример основан на модуле с именем msg.service.app. Содержит только один пакет msg.application:

Получение информации о модуле без использования -p:

..snip..>jdeps --module-path target --module msg.service.app
msg.service.app
 [file:///C:/..snip../target/msg.service.app/]
   requires mandated java.base (@11.0.3)
   requires msg.service.api
msg.service.app -> java.base
msg.service.app -> msg.service.api
   msg.application            -> java.lang                  java.base
   msg.application            -> java.util                  java.base
   msg.application            -> msg.service                msg.service.api

..snip..>

Получение информации о том, что зависит от пакета msg.service:

..snip..>jdeps --module-path target -p msg.service --module msg.service.app
msg.service.app
 [file:///C:/..snip../target/msg.service.app/]
   requires mandated java.base (@11.0.3)
   requires msg.service.api
msg.service.app -> msg.service.api
   msg.application            -> msg.service                msg.service.api

..snip..>

Пример, где он используется на java.base, чтобы выяснить, что зависит от пакета sun.util.spi:

..snip..>jdeps --module java.base -p sun.util.spi
java.base
 [jrt:/java.base]
java.base -> java.base
   java.util                  -> sun.util.spi               java.base
   sun.util.locale.provider   -> sun.util.spi               java.base

..snip..>
...