我正在根据需要使用插件的v3.7.0和JDK 9.0.1.我添加了两个require语句,每个语句都引用类路径(自动模块)中的jar.将罐子移到Modulepath后,module-info.java在Eclipse中成功编译.但是,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
How to deal with java keywords in auto generated module names in Java 9?中的答案有一个与在模块名称中使用Java标识符有关的错误.我的模块的自动jar名称应该只是rcf,因为jar名称是rcf-1.0.jar.我得到的错误也不同.