首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fail编译失败与maven编译器插件和自动模块

fail编译失败与maven编译器插件和自动模块
EN

Stack Overflow用户
提问于 2017-10-23 00:58:34
回答 1查看 1.6K关注 0票数 3

我根据需要使用插件的v3.7.0和JDK9.0.1。我添加了两个requires语句,每个语句都指向类路径中的一个jar (自动模块)。在我将jars移到Modulepath之后,这个模块-info.java在Eclipse中成功编译。但是,Maven给出了一个编译器错误,其中一个错误是其中一个丢失了(奇怪的是,这不是第一个之前的一行)。我试着检查自动模块名,但是我只从这个jar命令中得到了一个错误。这个错误意味着什么,以及如何修复它,以便我能够发现正确的模块名称?

我在下面的输出中替换了我的用户名。问题中的jar确实使用了ServiceLoader,但是没有用Java9编译。

代码语言:javascript
复制
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。我所犯的错误也不一样。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-23 03:24:20

在导出模块描述时,任何META-INF/services配置文件的内容都映射到provides声明。

为服务扫描的包是包含类文件的包。

另外,单个类的包名是从它们的完全限定名派生出来的。从共享日志中,com.username.rcf.server应该是要提供的服务的预期包名,这将变成

代码语言:javascript
复制
provides x.y.z.TestCmdChainInterface with com.username.rcf.server.TestCmdChain

您的模块中似乎没有这样的包com.username.rcf.server

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46880621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档