提供了服务接口但未导出或使用模块信息中的警告 class

Service interface provided but not exported or used warning in module-info class

Java9 - jdk-9+181
intelliJ - 2017.2.2 built on August 9,2017

java.management.rmimodule-info.java 实现有点像:

module java.management.rmi {
    ...
    requires transitive java.management;

    exports com.sun.jmx.remote.protocol.rmi to java.management;

    provides javax.management.remote.JMXConnectorProvider with
        com.sun.jmx.remote.protocol.rmi.ClientProvider;
    provides javax.management.remote.JMXConnectorServerProvider with
        com.sun.jmx.remote.protocol.rmi.ServerProvider;
}

对于 provides 这两个语句,我都看到一个编译器警告,说明

Service interface provided but not exported or used

当我尝试在另一个模块中使用它们时,我最终猜错了:

module interactor {
    requires java.management.rmi;
    uses javax.management.remote.JMXConnectorProvider;
}

警告仍然存在。

此外,我还可以到达java.management的模块找到

uses javax.management.remote.JMXConnectorProvider;
uses javax.management.remote.JMXConnectorServerProvider;

仍然出现此警告的原因是什么,如何解决?

根据评论中的要求附上截图:

对于任何未来的参考,由于 IntelliJ 更新中的一些回归,这可能是相关的,我自己回答这个问题。

这是 IntelliJ 的一个错误,在 IDEA-178041 被跟踪,导致:

omitting some JDK or library modules from a module graph used to generate warnings.


2017 年 9 月 7 日更新

此问题已通过 IntelliJ IDEA 2017.3 EAP build 修复。

IntelliJ IDEA 2017.3 EAP (Community Edition)
Build #IC-173.2099.14, built on September 6, 2017
JRE: 1.8.0_152-release-915-b11 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o