Jboss wifly 模块 - 如何重用注册为模块的库

Posted

技术标签:

【中文标题】Jboss wifly 模块 - 如何重用注册为模块的库【英文标题】:Jboss wilfly modules - how to reuse library registered as module(s) 【发布时间】:2019-10-21 22:30:21 【问题描述】:

我提出这个问题的全部目的是从我的 WAR/EAR 部署中清理一些库。

我现在正在使用wildfly 15,并且我有自己的库(例如# 模块名“com.test.mathfinder”jar 文件名mathfinder.jar)作为模块。我的部署结构是EAR->WAR。由于我的 jar 文件已注册/公开为模块,因此在我的 WAR 级别,在 WEB-INF 中,我包含了 jboss-deployment-structure.xml,它描述了我的 war 文件所具有的依赖关系。在这里,我将模块名称(“com.test.mathfinder)添加为我作为模块包含的依赖项。这里的问题是,我是否应该再次将那个 jar 文件包含在我的 WEB-INF\lib 中?

我在这里想要实现的只是避免来自我的 WEB-INF\lib 文件夹中的 jar 文件,这些文件已经由 Jboss 作为模块发布。例如,在我的 wildfly 文件夹中,jackson is core jar 可作为模块使用,C:\wildfly-8.2.0.Final\modules\system\layers\base\com\fasterxml\jackson\core\jackson-core\main\ jackson-core-2.4.1.jar

但同样的 jackson-core-2.4.1.jar 文件也随我的 WAR 文件一起提供。我们可以通过在 jboss-deployment-structure.xml 文件中包含依赖项来重用同一个 jar 并停止发送这个冗余文件吗?

【问题讨论】:

【参考方案1】:

我们可以通过在其中包含依赖项来重用同一个 jar jboss-deployment-structure.xml 文件并停止发送这个多余的 文件?

一句话回答你的问题是“是”

如果您的应用程序所需的依赖项是由 JBoss 提供的,那么您不需要在运行时添加这些依赖项(即不需要添加到 lib 文件夹中)。要将这些依赖项运行时提供给您的应用程序,您可以在 jboss-deployment-structure.xml 文件中添加模块依赖项。

在这里,我将模块名称 ("com.test.mathfinder) 添加为依赖项 我将其作为一个模块包含在内。这里的问题是,我应该包括 那个 jar 文件又是我的 WEB-INF\lib 吗?

如果你在 jboss 部署结构中添加模块依赖,你不需要在你的 war/ear 的 WEB-INF\lib 文件夹中添加这个依赖。

但是上述方法有一个缺点,即如果您的应用程序正在从 JBoss 迁移到任何其他服务器,则 jboss-deployment-structure 中提到的依赖项将无法用于新服务器。您需要在 lib 文件夹中再次添加这些依赖项。

【讨论】:

以上是关于Jboss wifly 模块 - 如何重用注册为模块的库的主要内容,如果未能解决你的问题,请参考以下文章

django项目一:基于django2.2可重用登录与注册模块-注册页面

JMeter - 如何创建可重用和模块化测试脚本

来自Arduino的HTTP文章(WiFly库)

django项目一:基于django2.2可重用登录与注册模块-admin后台

如何从 Jboss 连接 Oracle 数据库并在 JDNI 中注册该连接?

django项目一:基于django2.2可重用登录与注册模块-Django表单