【Ovirt 笔记】JBoss modules 配置分析与整理
文前說明
作為碼農(nóng)中的一員,需要不斷的學習,我工作之余將一些分析總結(jié)和學習筆記寫成博客與大家一起交流,也希望采用這種方式記錄自己的學習之旅。
本文僅供學習交流使用,侵權(quán)必刪。
不用于商業(yè)目的,轉(zhuǎn)載請注明出處。
分析整理的版本為 Ovirt 3.4.5 版本。
項目的 pom 文件中,使用 <artifactId>jboss-modules-maven-plugin</artifactId> 插件,引入 JBoss 模塊化管理,這是 JBoss 支持的靜態(tài)加載配置方式的一種,采用模塊化管理的項目有:dependencies、tools、compat、common、utils、dal、authentication。
/backend/manager/modules/utils/src/main/modules/org/ovirt/engine/core/utils/main/module.xml,配置信息如下:
- <module xmlns="urn:jboss:module:1.1" name="org.ovirt.engine.core.utils">
的 name 定義了模塊名稱。 - <resource-root path="utils.jar"/>,定義了模塊生成的 jar 包名稱。
注意:如果是第三方依賴,該名稱必須與 maven 的 artifactId 一致。
- <dependencies> 定義了模塊的依賴關系,通過 <module name="javax.api"/> 設置依賴的模塊名稱。
注意:JBoss modules 是一個適用于 Java 的模塊化(非層次化)類加載以及執(zhí)行環(huán)境的實現(xiàn)。因此如果一個模塊需要另一個模塊的某些功能,必須進行依賴,這個依賴是不能傳遞的,例如 A 依賴于 B,B 依賴于 C,如果 A 使用了 C 的功能,那么 A 必須依賴 C。
Jboss 本身具有了很多的模塊,可以直接進行依賴。文件位置:安裝目錄 /modules 中。例如 javax.api、javax.servlet.api 都是 Jboss 自帶的模塊。
配置了模塊,還需要把模塊與 maven 管理的 jar 包配置建立關聯(lián)關系。這部分工作 dependencies 項目進行了配置。engine 中只要是采用模塊化管理的項目中引入了第三方包,都需要在 dependencies 項目中進行關聯(lián)性配置。
- dependencies 的 pom 文件,配置了<dependency>,這里定義了 maven 的 jar 包管理。
- <artifactId>jboss-modules-maven-plugin</artifactId> 的 <modules> 標簽中,配置了模塊的關聯(lián)關系,例如:
將 maven 的 commons-fileupload 包與模塊 org.apache.commons.fileupload 進行關聯(lián)。
- 依賴 Jboss 自身包含的模塊,那么只需要在 modules 文件中配置即可。
- 依賴的第三方包,是 Jboss 自身不包含的,那么需要在
/backend/manager/dependencies/src/main/modules 文件夾下面,按模塊名稱建立目錄。例如 org.apache.commons.fileupload 就需要創(chuàng)建 org/apache/commons/fileupload/main/ 目錄,在該目錄下創(chuàng)建 module.xml 配置文件,配置為新的模塊:
再引入該模塊:
<dependencies> <module name="javax.api"/> <module name="javax.servlet.api"/> <module name="org.apache.commons.fileupload"/> </dependencies>最理想的配置是,所有的模塊都能找到依賴關系,最底層的依賴是 Jboss 自身包含的依賴。但是實際情況可能會復雜很多,模塊與模塊的依賴關系,可以通過查詢 maven中央庫 了解。
- 如果模塊單獨使用的可能性不大,每次都需要聯(lián)合其他模塊一起使用實現(xiàn)某個功能,那么可以將這些模塊統(tǒng)一配置為一個模塊,簡化配置。例如:
將 spring 所需 jar 包統(tǒng)一劃分為一個模塊,使用到 spring 的地方,統(tǒng)一引入該模塊即可。
作者:羽杰
鏈接:https://www.jianshu.com/p/c4e570176311
來源:簡書
?
總結(jié)
以上是生活随笔為你收集整理的【Ovirt 笔记】JBoss modules 配置分析与整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JBoss 系列八十五: JBoss M
- 下一篇: 使用JBoss Modules来模块化J