読者です 読者をやめる 読者になる 読者になる

たぷつきません

おなかがでてきた。もうたぷついてるやん。

maven-eclipse-pluginとの組み合わせでDoma Toolsが動かなくなる!

Doma Toolsが _Entityクラスや DaoImplクラスを吐いてくれなくて悩みに悩んでいたんだけど、やっと解決!

まず、EclipseのUIから以下の画面のように設定すると、何が起きるかってことから話さないといけないんだけど…
f:id:t-katochin:20140327150847p:plain

上記の設定で、.settings/ の下に、org.eclipse.jdt.apt.core.prefs が出来て、

org.eclipse.jdt.apt.aptEnabled=true
org.eclipse.jdt.apt.genSrcDir=.apt_generated
org.eclipse.jdt.apt.reconcileEnabled=true

こんなのが書かれる。
…なんだけど、ここにヒトツ罠があって、これだけではなく実は org.eclipse.jdt.core.prefsにも以下のものが追加されてる!

org.eclipse.jdt.core.compiler.processAnnotations=enabled

罠ってゆーかeclipseの仕様だから良いんだけど、この一連の挙動を mvn eclipse:eclipse では解決してくれない。

だからウチラはmaven-eclipse-pluginのadditionalConfigでfile生成にて jdt.apt.core.prefsの方は解決させていたんだけど、jdt.core.prefsはお任せ状態だった。だって slim3-genは問題なく動くんだもん。

同僚の環境でも出来たり出来なかったりするってゆーことで謎だったのはここで、設定画面で一旦チェックを外して保存、また開いてチェックして保存すると、 org.eclipse.jdt.core.compiler.processAnnotations=enabled が復活するので、「おお動く動く。はて?」となっていたってゆーオチだった。
んでまたその後も不意に eclipse:clean eclipse:eclipseすることで再び動かなくなるってゆーことだった。

ハマった。見事にハマった。

仕方ないので、maven-eclipse-pluginが自動生成するorg.eclipse.jdt.core.prefsまで additionalConfigで上書きするってゆー苦渋の選択を余儀なくされるってゆーオチに。

誰か maven-eclipse-pluginのコミッタに annotation processor対応してって伝えて〜。

ちなみに見つけたのはウチの織田信成似の同僚。ちゃんと動くdoma-tutorialプロジェクトと目diffで発見!よく見つけてくれたゎ! \(^o^)/