Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Wildfly中将第三方库定义为模块,而不包括其依赖项_Java_Wildfly_Dependency Management_Modularity_Jboss Modules - Fatal编程技术网

Java 在Wildfly中将第三方库定义为模块,而不包括其依赖项

Java 在Wildfly中将第三方库定义为模块,而不包括其依赖项,java,wildfly,dependency-management,modularity,jboss-modules,Java,Wildfly,Dependency Management,Modularity,Jboss Modules,我正在使用相当标准的堆栈(Java8、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">

我正在使用相当标准的堆栈(Java8、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重量级)方法,这将需要对应用程序进行更多更改或等待Jigsaw


这是一种有效的方法吗?

这似乎是一种可能的解决方案。这里描述了一个有趣的例子,但是。。。问题是关于可移植性。。。