Я использую v3.7.0 плагина по мере необходимости и JDK 9.0.1. Я добавил два оператора requires
, каждый из которых ссылается на банку в пути к классу (автоматический модуль). Модуль-info.java успешно компилируется в Eclipse после того, как я переместил банки в Modulepath. Однако Maven выдает мне ошибку компилятора о том, что один из них отсутствует (как ни странно, не первый, а всего одной строкой раньше). Я попытался проверить имя автоматического модуля, но получаю сообщение об ошибке только для этой банки. Что означает эта ошибка и как ее исправить, чтобы узнать правильное имя модуля?
Я заменил свое имя пользователя в выводе ниже. Рассматриваемый jar использует ServiceLoader
, но не скомпилирован с Java 9.
computerName:Commander-java username$ jar --file=/Users/username/.m2/repository/com/username/rcf/1.0/rcf-1.0.jar --describe-module
Unable to derive module descriptor for: /Users/username/.m2/repository/com/username/rcf/1.0/rcf-1.0.jar
Provider class com.username.rcf.server.TestCmdChain not in module
computerName:Commander-java username$ java -p /Users/username/.m2/repository/com/username/rcf/1.0/rcf-1.0.jar --list-modules
Error occurred during initialization of boot layer
java.lang.module.FindException: Unable to derive module descriptor for /Users/username/.m2/repository/com/username/rcf/1.0/rcf-1.0.jar
Caused by: java.lang.module.InvalidModuleDescriptorException: Provider class com.username.rcf.server.TestCmdChain not in module
Ответ в Как обрабатывать ключевые слова java в автоматически сгенерированных именах модулей в Java 9? имеет другую ошибку, связанную с использованием идентификатора Java в имени модуля. Автоматическое имя jar для моего модуля должно быть просто rcf
, так как имя jar rcf-1.0.jar
. Ошибка, которую я получаю, также отличается.
rcf-1.0.jar
? - person Naman   schedule 23.10.2017