如何获取Groovy生成的Java源代码

jha*_*ack 5 java groovy dynamically-generated gmaven-plugin

我们在Groovy中有一些遗留代码,我们想从应用程序中删除Groovy,因此,我们需要获取使用gmaven插件后生成的Java源代码。

基本上,换句话说,我正在动态生成新类(使用gmaven Groovy maven插件),并且我希望能够获取此类生成类的Java源代码。

我研究了一下,可以看到此插件的唯一目标是

<goal>generateStubs</goal>
<goal>compile</goal>
<goal>generateTestStubs</goal>
<goal>testCompile</goal>
Run Code Online (Sandbox Code Playgroud)

我看不到任何目标可以让您获得完全实现的Java源代码,存根代码对我们来说还不够,因为我们需要最终的实现源代码来摆脱Groovy。

Dav*_*itz 5

我对 gmaven 插件不太熟悉,但我假设它将 groovy 代码编译为字节代码。在这种情况下,您可以使用字节码反编译器,这里有一个很好的列表。以前我用过JAD,效果非常好。最好的人还会尝试根据类名创建有意义的变量名。

但有一个警告 - Groovy 对象是从 GObject 派生的,而不是 java.lang.Object,因此您可能需要保留 groovy jar,直到 groovy->java 移植完成。另外,请做好准备,这不会是一个很容易阅读的 java...