有一个 jboss-deployment-structure.xml 与公共库中的依赖项

Posted

技术标签:

【中文标题】有一个 jboss-deployment-structure.xml 与公共库中的依赖项【英文标题】:Having a jboss-deployment-structure.xml with dependencies in common libraries 【发布时间】:2016-08-22 02:36:51 【问题描述】:

我有一个小问题让我有些恼火。我们为部署在 JBoss/Wildfly 上的所有应用程序构建了许多公共库。其中一些通用库依赖于 JBoss 模块。

EAR 和 WAR 文件的常用方法是在存档中添加一个 jboss-deployment-structure.xml,其中包含一堆模块依赖项。

我曾多次尝试将 jboss-deployment-structure.xml 添加到我的 Commons JAR 中,以便导入它们的 WAR/EAR-archives 将自动查看 JAR 所拥有的依赖项,但是,没有尝试这样做会呈现正确的结果。

有没有人成功地在打包在 WAR 文件中的 JAR 文件中声明“传递”依赖项,而不必在 WAR 文件的 jboss-deployment-structure.xml 中重新声明相同的依赖项?

任何示例将不胜感激!

【问题讨论】:

【参考方案1】:

您可以使用 MANIFEST.MF 来声明 JAR 的依赖项。该行将类似于:

Dependencies: org.some.module, org.another.module

Maven 插件 maven-jar-plugin 会在构建过程中为您添加它。

您最好的选择是创建自己的 JBoss 模块来保存所有不同应用程序使用的所有常见 JAR。该模块将有它自己的 module.xml 文件,声明对其中包含的 JAR 的依赖关系以及其他 JBoss 模块上的任何库。这些自定义模块也可以进行版本控制,应用程序也可以依赖于特定版本。

【讨论】:

很好的发现,将依赖项添加到 MANIFEST.MF 就可以了。

以上是关于有一个 jboss-deployment-structure.xml 与公共库中的依赖项的主要内容,如果未能解决你的问题,请参考以下文章

一个实例有多个 GPU 或多个实例有一个 GPU

Rails 有很多通过有一个多态

从另一个有状态小部件调用一个有状态小部件中的方法 - Flutter

当一个 APK 有两个签名并且有一个签名的升级可用时会发生啥?

核心数据模型,游戏有赢家和输家,一个玩家有多场比赛?

Laravel 有一个条件关系