我想在我的模型上构建一个“toJavaCode()”,它将生成所需的Java源代码来生成该模型(更不用说原因或是否应该完成,以及可能的兼容性问题)发生)。
我对如何测试这一点感到茫然。我正在使用maven,但是生成源不会真正对我有用,因为我的服务器需要进行正确的批量测试。我确实在“测试”目标期间启动了服务器,但生成源太早了。
另一方面,虽然我可以使用内置编译器(来自JDK中的tools.jar)来执行此操作,但我不知道如何将其打包到jar中进行测试(或加载该jar)
有什么想法吗?
答案 0 :(得分:1)
您可以使用JavaCompiler API编译源文件并设置classloader以在测试中加载已编译的类(sample code)。 tools.jar必须在类路径上。如果使用JDK就是这种情况。
如果生成的代码对于任何给定的类都是稳定的,则可以使用annotation processor生成源代码,并在与注释类相同的javac运行中编译它。
答案 1 :(得分:0)
您可以向您的maven添加ant任务。在maven构建过程中,这是一种“超出经典秩序”的方式。就像添加一个javac ant任务来统一测试目标一样。
(对不起,我和你的评论员马特b一样困惑 - 但嵌入式蚂蚁任务是你的瑞士军刀。)