Определение сторонней библиотеки в Wildfly как модуля без включения его зависимостей

Я занимаюсь разработкой веб-приложения для Wildfly 9 с использованием довольно стандартного стека (Java 8, JAX-RS, Hibernate и т. Д.).

Теперь мне нужно использовать стороннюю библиотеку, которая имеет различные зависимости от версии библиотеки Log4j и т. Д. Поскольку я не хочу анализировать, совместимы ли эти зависимости с библиотеками в текущем веб-приложении, я подумал, что это будет хорошая идея определить модуль в 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-deploy-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>

Таким образом, я мог бы изолировать зависимости сторонней библиотеки и не должен анализировать, совместимы ли они с моим приложением, без использования (imo heavy-weight) подходов, таких как OSGi, которые потребовали бы больше изменений в приложении или ожидания Jigsaw.

Это правильный подход?

0 ответов

Другие вопросы по тегам