0

我想在我的模型上构建一个“toJavaCode()”,它会生成生成该模型所需的 Java 源代码(不管原因、是否应该或不应该这样做,以及可能发生的兼容性问题)。

我不知道如何测试这个。我正在使用 maven,但 generate-sources 对我来说并不适用,因为我的服务器需要进行适当的批量测试。我确实在“测试”目标期间启动了服务器,但是 generate-sources 为时过早。

另一方面,虽然我可以使用内置编译器(来自 JDK 中的 tools.jar)来执行此操作,但我不知道如何将其打包到 jar 中进行测试(或加载该 jar)。

有任何想法吗?

4

2 回答 2

1

您可以使用JavaCompiler API编译源文件并设置类加载器以在测试中加载已编译的类(示例代码)。tools.jar 必须在类路径中。如果使用 JDK,就会出现这种情况。

如果您生成的代码对于任何给定的类都是稳定的,您可以使用注释处理器生成源代码并在与注释类相同的 javac 运行中编译它。

于 2009-12-10T08:12:43.997 回答
0

您可以将 ant 任务添加到您的 maven。这是在 Maven 构建过程中实现“非经典秩序”的一种方式。就像向 mavens 测试目标添加 javac ant 任务一样。

(对不起,我和你的评论员 matt b 一样困惑——但嵌入式 ant 任务是你的瑞士军刀。)

于 2009-12-10T06:39:38.253 回答