有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案