1つのWildfly上に、複数のwarファイルをデプロイしています。
例えば、こんな構成だとします。

hoge.war
 - Hoge.jar
 - X-api.jar
 - X-impl.jar

fuga.war
 - Fuga.jar
 - X-api.jar

X-impl.jarは、X-api.jarの中にあるinterfaceの実装クラスが入っています。
Hoge.jarとFuga.jarの中のクラスは、X-apiの中にあるinterfaceを@Injectで使っています。

ここで、fuga.warはX-apiを含んでいますが、その実装を持っていません。
実装があるのはhoge.warの中です。
もちろんfuga.warの中にX-impl.jarを入れれば動くのですが、同じモジュールを重複していれることになるので、それは避けたいと思っています。
(バージョン管理の面で、片方を更新し忘れたりとか・・・)

どうにかして、X-impl.jarを1つだけにしたいのですが、可能でしょうか?
方向性としては、以下の2つのアプローチかなと思ってはいますが、いずれもやり方が分かりません。

  1. fuga.warからhoge.warの中にあるX-impl.jarを参照する
  2. X-impl.jarを双方のwarから取り出して独立させ、双方のwarから参照する