19828


WildFlyを使ってJavaEEアプリケーションを作っています。  
それなりに多い人数で開発しているのですが、`@Inject`してあるインタフェースの実装クラスが無かったり、Beanになってない（アノテーション漏れ）があったりといったコードがコミットされてしまうことがよく発生します。  
こうなると他のメンバーがデプロイしようとしたときにエラーが起きてしまうので、作業効率が悪いです。

できればコンパイルのタイミングで「このままだとデプロイできないよ」というエラーを検出したいのですが、何か良い方法は無いでしょうか？  
DI対象のクラスは別のjarに入ってたりするので、なかなかむずかしそうですが・・・


CC BY-SA 3.0
2015-12-09T10:36:57.423
19811
2016-01-18T23:08:56.610
2015-12-11T04:08:23.427
13122
8078
question
java java-ee
Javaアプリケーションのデプロイ時エラーを事前に検出したい


Eclipseをお使いであれば[JBoss Tools](http://tools.jboss.org/)の中に[Context Dependency
Injection
Tools](http://tools.jboss.org/features/cdi.html#validation)というプラグインがありまして、このValidation機能([Reference
Guide該当節](http://docs.jboss.org/tools/nightly/trunk/en/cdi_tools_reference_guide/html_single/index.html#chap-
CDI_Tools_Reference_Guide-Validation))が役に立つかもしれません。

[![Injection対象の実装がない場合の例。デフォルトでは警告ですが設定変更でエラーになるようにしています。](https://i.stack.imgur.com/0wWjB.png)](https://i.stack.imgur.com/0wWjB.png)  
(Injection対象の実装がない場合の例。デフォルトでは警告ですが設定変更でエラーになるようにしています。)

* * *

紹介しておいてなんですが、私自身はこの機能を使っていません。というのも、プロジェクト規模が大きくなり、これ系のプラグインのせいでIDEが耐えられないくらい重くなった、という経験が何度かあるためです。  
ですので、導入される場合にはその辺りの検証も事前にしておくのが良いかと考えます。

もし可能であれば、このような解決法ではなく、JenkinsなどのCIツールでの周期的な自動テスト実行の一環としてデプロイも含める、というのがスマートかもしれません。


CC BY-SA 3.0
2015-12-10T01:31:01.233
19828
2015-12-10T01:31:01.233
2808
19811
answer


単体テストにarquillianを使えば、CDIも含めてテスト可能です。


CC BY-SA 3.0
2016-01-18T23:08:56.610
21044
2016-01-18T23:08:56.610
13122
19811
answer