Java代码生成基于编译的类文件



我正在尝试生成一个包含一些其他功能的POJO类包装器。

因此,就我的情况而言,我需要能够基于编译类(pojowrapper.java for pojo.class(生成新的Java源代码文件。

,但我必须使用准确的类文件。原因有两个:

  1. 我需要全班的最终形状,但是注释处理器可以更改它。例如,Lombok可能会在课堂上添加方法,但是对我而言,重要的是要提前了解这些方法。

  2. 我必须能够为我不拥有的类生成源代码(第三方库(。

显然,注释处理对我不起作用。

我想到的第一个想法是制作一个Maven插件,该插件将通过ASM库分析生成的二进制类。之后,我将生成源代码。

但这是一个棘手的部分:要获得最终的罐子,我需要两次编译我的项目,首次生成包装器源代码,然后我需要将所有文件编译在一起以构建最终的二进制文件。<<<<<<<<<<<<<<

在这里,我正在考虑在编译阶段之前对Maven-Compile-Plugin进行单独的呼叫项目将被编译。

我的问题是:如何正确实施以下步骤:

  1. 编译一组将成为代码生成基础的类
  2. 分析二进制文件并生成Java源代码

您可以使用Java编译器插件API(即截距javac编译阶段(。

https://docs.oracle.com/javase/8/docs/jdk/api/javac/javac/tree/com/com/soun/source/util/plugin/plugin.html

https://www.baeldung.com/java-build-compiler-plugin

https://tutortrex.wordpress.com/2015/10/06/java-compiler-plug-plug-ins-in-java-8-8-is-a-a-a-a-new-new-plug-in-plug-in-mechanism to-extend-to-extend-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-the-le--java-compiler,with-new-behavior/

最新更新