java java编译器和模块
我有一个多模块maven项目结构,如下所示:
parent
A
B
C
(所以模块A、B和C是我在父模块“内部”的模块)
A不是模块化的,而B和C是(A只包含一个非常小的main方法)。模块A依赖于B和C,B依赖于C
一切正常——所有模块依赖项、模块信息文件等都正常工作
但我现在有个问题。B使用JavaCompiler API在内存中动态编译一些Java代码。一段示例代码可能是:
^{pr 1}$
因此,编译后的代码使用模块C中的类X
在我模块化我的项目之前,所有生成的代码都运行良好。B包含扩展ForwardingJavaFileManager的自定义JavaFileManager和一些自定义SimpleJavaFileObjects
当我现在编译上面的代码时,编译器说它找不到A.X
我想我必须配置我的定制JavaFileManager来以某种方式处理模块,但我一直无法让它工作
在stackoverflow上有一些关于JavaCompiler API的帖子,但几乎都是关于Java模块引入之前的工作原理
所以我想知道是否有人能给我指出一个讨论,甚至一些代码,来展示如何正确处理上述问题
谢谢
共 (0) 个答案