java - 使用 Java 或 Groovy 以编程方式修改 Java 源代码

标签 java groovy

为了自动执行遗留项目中的某些手动任务,我需要从 java 或 groovy 代码中修改现有的 java 文件。

我不想使用正则表达式,因为在我看来它既不快速也不干净。

我找到了 javassist 和 srcgen4javassist。第一个允许我根据需要修改源代码,但只写入字节码,丢失所有注释和注释。对于第二个,我无法读取不是用 srcgen4javassist 本身创建的现有类。

有一个优雅的解决方案,还是我需要硬着头皮使用正则表达式?

最佳答案

你真的可以使用像 eclipse 的 ASTParser 这样的东西来解析代码。此时您可以以 xpath 方式找到替换目标,但这需要大量工作。

您还可以考虑使用注释和 writing an annotation processor to generate/alter sources at runtime 标记替换区域,但是(至少在我看来)API 很麻烦。

您可以将正则表达式与源代码中的某些标记结合起来,例如

//START REPLACEMENT-TARGET 
...code to be edited/replaced
//END REPLACEMENT TARGET

这将使您的正则表达式定位更加安全。

关于java - 使用 Java 或 Groovy 以编程方式修改 Java 源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16190101/

相关文章:

mysql - 使用 Groovy 连接到 MySQL

java - 有没有办法在Java中 "clean"接受 header ?

java - 创建自定义表模型以提供 ArrayList 中的数据

java并发 - 保持某些任务之间的顺序

java - Libgdx 补间问题

groovy - 默认情况下,Soap UI 在 new File() Groovy Script 中在哪里查找文件?我如何改变这个?

java - 如何直接全屏横向模式播放YouTube视频?

java - 从 grails 事件调用 grails 命令?

没有 Spring 的 Java 环境特定属性

Groovy 可选括号和点