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

时间:2013-04-24 10:53:06

标签: java groovy

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

我不想使用RegEx,因为在我看来它既不快也不干净。

我找到了javassist和srcgen4javassist。第一个允许我按照自己的意愿修改我的源代码,但只写字节码,丢失所有注释和注释。而第二个我没有设法读取一个不是用srcgen4javassist本身创建的现有类。

是否有一个优雅的解决方案,还是我需要咬紧牙关并使用正则表达式?

1 个答案:

答案 0 :(得分:0)

你可以使用eclipse的ASTParser之类的东西来解析代码,此时你可以找到你的替换目标xpath-style,但它有很多工作。

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

您可以将regexp与源代码中的某些标记结合使用,例如

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

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