非常に標準的なスタック (Java 8、JAX-RS、Hibernate など) を使用して、Wildfly 9 用の Web アプリケーションを開発しています。
ここで、Log4j などのライブラリ バージョンにさまざまな依存関係を持つサードパーティ ライブラリを使用する必要があります。これらの依存関係が現在の Web アプリのライブラリと互換性があるかどうかを分析したくないので、次のようになると思いました。 Wildfly でモジュールを定義することをお勧めします。何かのようなもの
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="foo.md">
<resources>
<resource-root path="foo-1.0.jar" />
<resource-root path="log4j-1.2.12" />
<resource-root path="concurrent-1.0.jar" />
<!-- etc -->
</resources>
</module>
次に、jboss-deployment-structure.xml を使用してモジュールを含めることができます
<?xml version="1.0"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
<dependencies>
<module name="foo.md" >
<imports>
<include path="foo" />
<exclude path="bar" />
</imports>
</module>
</dependencies>
</deployment>
このようにして、サードパーティ ライブラリの依存関係を分離することができ、OSGi のような (imo ヘビーウェイト) アプローチを使用せずに、サードパーティ ライブラリの依存関係がアプリと互換性があるかどうかを分析する必要がありません。ジグソーパズル。
これは有効なアプローチですか?