【发布时间】:2013-11-19 16:33:05
【问题描述】:
我们有一些使用 Groovy 的遗留代码,我们想从应用程序中删除 Groovy,因此,我们需要获取使用 gmaven 插件后生成的 java 源代码。
基本上,换句话说,我正在动态生成新类(使用 gmaven Groovy maven 插件),我希望能够获得此类生成的类的 java 源代码。
我研究了一下,发现这个插件的唯一目标是
<goal>generateStubs</goal>
<goal>compile</goal>
<goal>generateTestStubs</goal>
<goal>testCompile</goal>
我看不到任何目标可以让您获得完全实现的 java 源代码,存根代码对我们来说是不够的,因为我们需要最终的实现源代码才能摆脱 Groovy。
【问题讨论】:
-
我对Groovy不熟悉,但是Groovy的编译真的会生成一个中间Java源码吗?我对此表示怀疑。如果 Groovy 直接编译成字节码,那只能反编译字节码,转成对应的 Java 源码。无论如何,与其经历可能需要大量代码整理的过程,为什么不简单地使用 Java 重写它呢?
-
为什么不把 Groovy 类重写成 Java 呢?如果你正在构建它,我假设你有源代码。这个问题在目前的形式下没有多大意义。你能详细说明一下吗?
-
阿德里安,蒂姆感谢您的回答,阿德里安:谢谢阿德里安,也许您的权利。 Tim:这个问题至少对我来说是有意义的,因为我不想处理 Groovy :-)。我只是不想/没有时间完成那件事,groovy 代码是遗留的,所以我没有这样做,我只是想避免这样做。也许在创建 java 类之前将 groovy 源代码转换为 java 字节码,我只是想知道是否有一种快速简便的方法可以向 Groovy 询问生成的 java 源代码。如果 Groovy 编译不生成 java 源代码,那我就用反编译器。
标签: java groovy dynamically-generated gmaven-plugin