在使用java命令启动应用程序时,如下所示: –
java -p target/classes:target/dependency -m framework.core/com.framework.Main
>您使用-p aternate选项为–module-path指定模块路径,该选项将查找目标/类和模块的目标/依赖项.
>同时,使用-m alternate for –module指定要使用名称framework.core解析的初始模块,并使用主类构造模块图,以明确地将其列为com.framework.Main.
现在,这里的问题似乎是模块framework.core不需要或读取playground.api模块,因为模块图不包含由实际资源config.yml组成的所需模块.
作为suggested by @Alan,在启动期间列出模块分辨率输出的一种好方法是使用–show-module-resolution选项.
I just naively tried to opens src/main/resources, doesn’t compile ofc
由于模块中的资源位于root level,因此它是not encapsulated,不需要打开或导出到任何其他模块.
在您的情况下,您只需要确保模块playground.api最终在模块图中,然后应用程序可以访问该资源.要指定除初始模块之外要解析的根模块,可以使用–add-modules选项.
因此,为您工作的整体解决方案以及一些调试应该是:
java --module-path target/classes:target/dependency
--module framework.core/com.framework.Main
--add-modules playground.api
--show-module-resolution