私は、インタフェースのゲッターメソッドで定義されたキーを持つ列挙を生成するアノテーションプロセッサを持っています。Annotation Processorでリソースを読み込めません(クラスパス上ではありません)
インターフェースは
MyProjectと/ SRC /メイン/ジャワ/ my.package.MyInterfaces.javaに存在します。
MyProject/src/main/resources/META-INF/resource-bundle/
にあるプロパティファイルに、生成された列挙型で定義されたキーが含まれている場合は、そのプロパティファイルを検証します。
私の問題は、プロパティファイルがプロセッサのクラスローダーまたはFiler.getResource(...)を介して利用できないということです。
このプロジェクトのソースまたはクラスパスをプロセッサで使用できるようにするにはどうすればプロパティファイルをロードできますか?
ここでは、プロセッサが常駐するjarファイル内のリソースしかありません。 プロジェクト/プロパティ/ Javaコンパイラ/アノテーション処理/プロセッサオプションを使用して-classpathおよび/または-sourcepathを定義しようとしましたが、うまくいかなかった。
誰もがこのような問題に直面したことはありますか?どのように私はリソースをプロセッサで利用できるようにすることができますか?
私はmaven構造を持っていますが、アプリケーション内の古い依存関係のためにmavenは使用していません。だから、今は私のための選択肢ではありません。
のEclipse 3.6 Heliosの は*
StandardLocation.SOURCE_PATH
とStandardLocation.CLASS_PATH
もSOURCE_PATH
とCLASS_PATH
上の任意のファイルにアクセスして、可能ではないようですので、SOURCE_PATH
またはCLASS_PATH
に生成されたソースまたはクラスファイルを書き込む、ファイラー#のgetResource()で実装されていないようです
ありがとうございます。
はい、実装されていないようです。誰でも回避策ですか? – Arne
あなたはすべてこれを解決しましたか?私は同様の問題を抱えています:http://stackoverflow.com/questions/29658252/how-to-obtain-the-right-javafilemanager-in-a-java-annotation-processor – jurgenv
ソースの場所よりも重要なのは場所ですあなたの出力フォルダにあります。ファイルがoutput/META-INF/resource-bundleにも入っていることを確認しましたか?どのように構築するのですか?出力フォルダは何ですか?バンドルをロードするときに指定するパスは何ですか? –