2

我正在寻找一个实用程序,它允许我将大量 .java 文件(我不允许修改)作为输入,并输出使用这些更改修改的相同文件:

  1. 在文件顶部添加导入语句
  2. 在匹配某个正则表达式(即* com.foo.*.draw*(*))的每个函数中......
    1. Func.begin([function name])在函数开头插入,其中 [function name] 是完全限定的函数名 ( void com.foo.circle.drawLine(int,int))
    2. Func.end([function name])在函数底部插入

但是,我不想将 AspectJ 用于此任务,因为它适用于 .class 文件并且可能会减慢速度。

有任何想法吗?

4

2 回答 2

2

我可能会使用 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 任务的详细信息可在在线 ant 手册中找到

于 2012-10-17T20:07:21.590 回答
2

试试我的 Java 注释预处理器,它具有形成前缀和后缀部分的特殊功能(我将它用于导入部分) http://code.google.com/p/java-comment-preprocessor/

于 2012-11-06T10:07:36.237 回答