生成されたクラスのJavaバイトコードを操作するコンパイル後のステップがあります。私は図書館の消費者の生活をできるだけ苦痛のないものにしたいので、このプロセスを自動化し、(可能であれば)コンパイラに依存しないようにする方法を検討しています。
Annotation Processing APIは、必要な機能の多くを提供します(自動サービス検出、Eclipseでサポート)。残念ながら、これはコードジェネレーターを対象としており、既存のアーティファクトの操作をサポートしていません。
ツールへの初期入力は、第0ラウンドによって作成されたと見なされます。したがって、これらの入力の1つに対応するソースファイルまたはクラスファイルを作成しようとすると、FilerExceptionが発生します。
APIが推奨するデコレータパターンはオプションではありません。
ランタイムエージェント/インストルメンテーションを使用してステップを実行する方法はわかりますが、これは手動のビルドステップよりも悪いオプションです。これは、APIに周辺的に触れられた人でも、JVMを非自明な方法で構成する必要があるためです。
javacによって呼び出されるコンパイラツールにプラグインまたはラップする方法はありますか?ドキュメントの内容に関係なく、誰かが注釈プロセッサを破壊してバイトコードを操作することに成功しましたか?