有一个 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 与公共库中的依赖项的主要内容,如果未能解决你的问题,请参考以下文章
从另一个有状态小部件调用一个有状态小部件中的方法 - Flutter