Eclipse で apt-maven-plugin が動かない場合の対処

QueryDSL の apt-maven-plugin が動かなくてハマったのでメモ。

現象

もともとなんの問題もなく動いていた apt-maven-plugin が何かの拍子に突然動かなくなりました。 target/generated-sources/java 以下に保存時に QueryDSL の自動生成クラスを作ってくれるはずが、 Eclipse からソースを編集して保存すると target/generated-sources/java が空っぽになってしまいます。

対策

コマンドラインから Mavenコンパイルするとソースが生成されるので、 Eclipse 側の原因と思われました。 Eclipse での保存時の動きなのでビルド設定まわりでは?とあたりをつけて、プロジェクトのプロパティから Builders を開くと Missing builder となっているものがあったので、そいつらのチェックを外すと動くようになりました。

そもそもそいつらが要らない場合、 .project ファイルを編集して該当項目を消してしまっても良いと思います。

今回はおそらく STS でプロジェクトを開いた際に自動的に設定されたと思われる org.springframework.ide.eclipse.boot.validation.springbootbuilder と org.springframework.ide.eclipse.core.springbuilder が原因でした。この環境では STS プラグインを入れていなかったので、使用できないビルダー設定になっていました。とはいえこの状態で普通に APT が動いていたはずなので謎ではありますが・・・。

先日どうしても apt-maven-plugin が動かなくて、 EclipseSTS プラグイン入れたらなぜか動くようになったということがありましたが、これが原因だったのかもしれません。その時はプロジェクトをインポートした時点からさっぱり動かなかったので、原因を突き止められていませんでした。

何かログなり出ていればともかく、「動かない」という事実だけ突きつけられると非常に辛いですね。あと、今回はゴミにやられた感じなので同じプロジェクトをいろんな環境で開くべきではないですね。