如何从Java9模块导出所有包?

如何从Java9模块导出所有包?,java,java-9,java-module,java-platform-module-system,Java,Java 9,Java Module,Java Platform Module System,现在,对于我拥有的每个模块,我都需要明确指定要导出的包。例如: module core { exports cc.blynk.server.core; exports cc.blynk.server.core.protocol.handlers.decoders; exports cc.blynk.server.core.protocol.handlers.encoders; } 但是,这不是很方便。我想这样做: module core { exports cc

现在,对于我拥有的每个模块,我都需要明确指定要导出的包。例如:

module core {
    exports cc.blynk.server.core;
    exports cc.blynk.server.core.protocol.handlers.decoders;
    exports cc.blynk.server.core.protocol.handlers.encoders;
}
但是,这不是很方便。我想这样做:

module core {
    exports cc.blynk.server.core.*;
}

有办法吗?此限制来自何处?

否,您不能使用通配符导出模块内的所有包。您必须明确导出每个包

这是不允许的,因为这可能会在从不同模块导出的不同包中导致冲突,从而违背代码的目的


另外引用其中一个线程:

模块导出的包意味着是一个稳定的API 消费者可以信赖。出于这个原因,我们让模块成为作者 明确说明导出的包。这也降低了成本 多个模块不必要地导出同一个包的可能性。 此外,它还避免了在
com.abs.*
导出时未经限定,而
com.abs.foo
导出时带有 资格


这对库开发人员来说是个大问题..不起作用。给出令牌“*”上的
语法错误,标识符应为
@user435421什么不适合您?您是否阅读了答案的部分“…我们让模块作者明确说明导出的包。”解释了为什么
*
不起作用。“不鼓励使用X…”意味着X仍然可以使用。我提出了一个编辑建议