2

我正在使用非常标准的堆栈(Java 8、JAX-RS、Hibernate 等)为 Wildfly 9 开发一个 Web 应用程序。

现在我必须使用第三方库,它对 Log4j 等库版本有各种依赖关系。由于我不想分析这些依赖关系是否与当前 web-app 中的库兼容,我认为它会是在 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 重量级)方法,这需要对应用程序进行更多更改或等待拼图。

这是一种有效的方法吗?

4

0 回答 0