2

膨大な数の.javaファイル(変更は許可されていません)を入力として受け取り、これらの変更で変更された同じファイルを出力できるユーティリティを探しています。

  1. ファイルの先頭にインポートステートメントを追加します
  2. 特定の正規表現に一致するすべての関数(つまり* com.foo.*.draw*(*))..
    1. 関数の先頭に挿入Func.begin([function name])します。ここで、[関数名]は完全修飾関数名(void com.foo.circle.drawLine(int,int))です。
    2. Func.end([function name])関数の下部に挿入します

ただし、AspectJは.classファイルで機能し、処理速度が低下する可能性があるため、このタスクには使用しません。

何か案は?

4

2 に答える 2

2

Java コメント プリプロセッサを試してみてください。前置セクションと後置セクションの両方を形成する特別な機能があります (インポート セクションに使用しました) http://code.google.com/p/java-comment-preprocessor/

于 2012-11-06T10:07:36.237 に答える
2

私はおそらくGradleを使用するでしょう。どのプロジェクトも gradle プロジェクトにする必要はありませんが、ユーザー定義のタスクを定義して作業を行うことができます。既存のファイルへの置換 (それらのファイルをそのままにしておく) については、ant タスクのサポートが gradle の「コピー」タスクよりも少し使いやすいことがわかりました。元のファイルを変更せずに残しておく必要がある場合は、それを使用する必要があります。

replace を使用して「インポート」を挿入できます。

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 に答える