如何从Java 9模块导出所有包?
现在,对于我拥有的每个模块,我都需要明确指定要导出的包。 例如:
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.*; }
有没有办法做到这一点? 这种限制来自哪里?
用法
module core { exports cc.blynk.server.core.*; }
不鼓励,因为这可能主要导致从不同模块导出的不同包中的冲突,这违反了模块化代码的目的。
另外引用其中一个主题:
模块导出的包旨在成为消费者可以依赖的稳定API。 出于这个原因, 我们让模块作者明确地拼出导出的包 。 这也减少了多个模块不必要地导出相同包的可能性。 此外,它还避免了在
com.abs.foo
导出且具有限定条件时,如果com.abs.*
在没有限定com.abs.foo
下导出时会发生的混淆。