我正在寻找一个实用程序,它允许我将大量 .java 文件(我不允许修改)作为输入,并输出经过这些更改修改的相同文件:
- 将导入语句添加到文件顶部
- 在与某个正则表达式匹配的每个函数中(即
* com.foo.*.draw*(*)
)...- 在函数开头插入
Func.begin([function name])
,其中 [function name] 是完全限定的函数名称 (void com.foo.circle.drawLine (int,int)
) - 在函数底部插入
Func.end([函数名称])
- 在函数开头插入
但是,我不想使用 AspectJ 来完成此任务,因为它与 .class 文件一起使用,并且可能会减慢速度。
有什么想法吗?
最佳答案
我可能会使用 Gradle。您不需要将任何项目制作为 gradle 项目,而只需定义一个用户定义的任务来完成工作。对于替换现有文件(将这些文件保留在适当的位置),我发现 ant 任务支持比 gradle“复制”任务更容易使用。如果您需要保持原始文件不变,您应该使用它!
您可以使用替换来插入“导入”:
task addImportStatement << {
ant.replace(dir: 'yourSrcDirHere', token: 'existing value', value:'<![CDATA[existing value
new import statement here]]>')
}
task regExpressionSub << {
ant.replaceRegExp(...)
}
regExpressionSub.dependsOn addImportStatement
ant 任务的详细信息是 available in the online ant manual
关于Java 预处理器 - 将代码插入每个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12940953/