複数のwarファイル間でクラスを共有したい
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つのアプローチかなと思ってはいますが、いずれもやり方が分かりません。
- fuga.warからhoge.warの中にあるX-impl.jarを参照する
- X-impl.jarを双方のwarから取り出して独立させ、双方のwarから参照する