Java:: 模块中的模块?

Java:: Module(s) within module?

Java 平台模块系统 (JPMS) 是否支持模块内的模块?这是一个好习惯吗?

我们以下面的结构为例。我没有包含 outermodule1 模块描述符 (module-info.java) 和名为 modulewithinmodule.[=15 的根模块 (?) =]

我发现这个嵌套结构对于使用 Maven 模块管理我的依赖项很有用。所有具有模块描述符的 (JPMS) 模块的配置和封装也按预期工作。

对于我的项目,根据 JPMS,完全模块化,我应该为现在没有的模块包含一个模块描述符吗?如果是这样,我应该为内部模块使用什么指令(命令)(如果有的话)?如果不是,那么它们将被视为 未命名模块 并且因此,将取决于所有 java-base 模块(可能还有其他模块)是否需要它们并使应用较重;正确吗?

感谢@Slaw 的回答,并进行了更多研究,以下是我收集的内容。如果我错了请纠正我。

  1. 不支持嵌套的 JPMS 模块。

  2. 上述文件结构不会产生任何嵌套的 JPMS 结构,并且不存在 未命名 JPMS 模块。编译器应该可以访问模块路径,而 Maven 会负责这件事。但是请注意,Maven 模块是嵌套的。

  3. 根据here,虽然未命名的模块自动需要所有其他命名模块,但它们仅按需加载。