アノーテーションプロセッサーをEclipseで動かすまでに豪華メンバーにサポートを受けるなど

アノーテーションプロセッサーがEclipseで動かなくて泣いてた僕を、豪華メンバーが助けてくれました。 ありがたや ありがたや
2
こざけ @s_kozake

eclipseで注釈処理が動かない。コマンドでは動く。domaを取り込んだら、eclipse注釈がされたので、何かの設定が悪いとは思うが。。 META-INF/servicesにもプロセッサー登録しているし。。

2013-06-11 10:41:56
こざけ @s_kozake

domaのソースみても、AbstractProcessorのソースみても何が悪いのか全くわからん。。

2013-06-11 10:42:48
こざけ @s_kozake

processすら呼ばれていないような。。 なんなんだろ一体。久々に超絶はまっている

2013-06-11 10:46:32
AOE Takashi @aoetk

@s_kozake Eclipse側では注釈プロセッサの設定はしているんですよね?プロジェクトディレクトリに.factorypathや.settings/org.eclipse.jdt.apt.core.prefsは出力されていますか?

2013-06-11 11:56:23
こざけ @s_kozake

@aoetk どちらも出力されています。.factorypathの内容もdomaのそれと変わらないのですが、なんなのか分からないです。おそらく、javacコマンドでもantコマンドでも動作するので、おそらくEclipse特有のなにかだと思うのですが。。

2013-06-11 12:00:14
こざけ @s_kozake

アノーテーションプロセッサのコツがイマイチ。Domaのソース見ると分かるんやろか

2013-06-11 18:38:08
こざけ @s_kozake

しかし、アノーテーションプロセッサー、いまいち分かりにくい。 完全にハマってるし、、

2013-06-11 21:35:44
こざけ @s_kozake

とりあえず、domadomaのソースでも読むかな

2013-06-11 21:36:35
うらがみ⛄ @backpaper0

@s_kozake Eclipseがアレなだけじゃないですかね?

2013-06-11 21:39:48
こざけ @s_kozake

@backpaper0 いや、本当横にいて教えて欲しいくらいですよ~。櫻庭さんの記事も全部読んだんですが、イマイチまだコツを掴めてないですね。 僕は自動生成好きだから、なんとかマスターしたいんですが。

2013-06-11 21:43:19
こざけ @s_kozake

例えば、アノーテーションを指定しているクラスが実装しているインタフェースのジェネリック型を取れるのかどうかとか。

2013-06-11 21:45:36
toshihiro nakamura @nakamura_to

@s_kozake Aptina Unitを使ってaptのAPIをTry and Errorで学習するとかお奨めです。Elementの階層とTypeMirrorの階層の相互変換がポイントかなーと思います。

2013-06-11 21:53:41
こざけ @s_kozake

@nakamura_to え、えww もしかしてDomaの方ですよねww 今日ソース見てたので ありがとうございます! それで勉強してみます!

2013-06-11 21:58:08
こざけ @s_kozake

まさかの大御所登場ww

2013-06-11 22:00:01
toshihiro nakamura @nakamura_to

@s_kozake 途中で送ってしまいました。。。こういうコードのStringの部分をとれます。 @Bar class Hoge implements Foo<String> {}

2013-06-11 21:59:57
こざけ @s_kozake

@nakamura_to ありがとうございます。まさにやりたいのがそれです。頑張ってみます。因みにで申し訳ないですが、javacでもantでも動くアノテプロセッサが、eclipseでは動かない事象の原因などご存知でしょうか? Domaは動くんですが、自作が動かないです、

2013-06-11 22:04:08
こざけ @s_kozake

俄然、アノテプロセッサのやる気が出てきた感

2013-06-11 22:08:45
toshihiro nakamura @nakamura_to

@s_kozake 動いている動いていないというのはどうやって判断していますか?aptのMessagerでデバッグ出力している想定ですが、MessangerはEclilpseのErrorLogビューに文字列を出力します。そちらに実は出力されていたりしませんか?

2013-06-11 22:11:34
こざけ @s_kozake

@nakamura_to どうもprocessが呼ばれていないみたいです。ただ、エラーログビューは見ていなかったので、見てみます。色々とありがとうございました!

2013-06-11 22:14:33
toshihiro nakamura @nakamura_to

@s_kozake processorが呼ばれていないのは確実でしょうか?呼ばれているけど気づけていない可能性があるのかなと思いました。ちなみに、Error LogビューはEclipseのエディションによってはついていないので注意です(for Java Developerとか)。

2013-06-11 22:19:11
こざけ @s_kozake

@nakamura_to 僕もその可能性が高いように思います。気になるので、今から少し試してみます。ありがとうございます!

2013-06-11 22:21:30
こざけ @s_kozake

確かにElementと特にTypeMirrorが良く理解出来ていないような。 ElementからClassインスタンスとるにはどうするばいいとか考えてたし。コンパイル中に取れるわけないのに。僕はアホかと

2013-06-11 22:15:52
こざけ @s_kozake

もっときちんとJavaを勉強しとくべきだった。とりあえず頑張ろう

2013-06-11 22:18:32