How to export all packages from Java 9 module? [duplicate]

会有一股神秘感。 提交于 2019-12-06 19:49:47

问题


Right now, for every module I have, I need to explicitly specify packages I want to export. For example:

module core {
    exports cc.blynk.server.core;
    exports cc.blynk.server.core.protocol.handlers.decoders;
    exports cc.blynk.server.core.protocol.handlers.encoders;
}

However, it is not very convenient. I would like to do something like that:

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

Is there any way to do that? Where this limitation comes from?


回答1:


The usage of

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

is discouraged since this could majorly lead to conflicts in the different packages exported from different modules which defies the purpose of modularising the code.


Additionally quoting from one of the threads:

The packages exported by a module are meant to be a stable API that consumers can rely on. For this reason, we make the module author spell out the exported packages explicitly. This also dials down the likelihood of multiple modules needlessly exporting the same package. Additionally, it avoids the confusion that would occur if com.abs.* was exported without qualification while com.abs.foo was exported with qualification.



来源:https://stackoverflow.com/questions/46502672/how-to-export-all-packages-from-java-9-module

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!