質問: WildFlyを使ってJavaEEアプリケーションを作っています。 それなりに多い人数で開発しているのですが、`@Inject`してあるインタフェースの実装クラスが無かったり、Beanになってない(アノテーション漏れ)があったりといったコードがコミットされてしまうことがよく発生します。 こうなると他のメンバーがデプロイしようとしたときにエラーが起きてしまうので、作業効率が悪いです。 できればコンパイルのタイミングで「このままだとデプロイできないよ」というエラーを検出したいのですが、何か良い方法は無いでしょうか? DI対象のクラスは別のjarに入ってたりするので、なかなかむずかしそうですが・・・
回答: Eclipseをお使いであればJBoss Toolsの中にContext Dependency Injection Toolsというプラグインがありまして、このValidation機能(Reference Guide該当節)が役に立つかもしれません。 !Injection対象の実装がない場合の例。デフォルトでは警告ですが設定変更でエラーになるようにしています。 (Injection対象の実装がない場合の例。デフォルトでは警告ですが設定変更でエラーになるようにしています。) 紹介しておいてなんですが、私自身はこの機能を使っていません。というのも、プロジェクト規模が大きくなり、これ系のプラグインのせいでIDEが耐えられないくらい重くなった、という経験が何度かあるためです。 ですので、導入される場合にはその辺りの検証も事前にしておくのが良いかと考えます。 もし可能であれば、このような解決法ではなく、JenkinsなどのCIツールでの周期的な自動テスト実行の一環としてデプロイも含める、というのがスマートかもしれません。