日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Ovirt 笔记】JBoss modules 配置分析与整理

發布時間:2025/3/21 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Ovirt 笔记】JBoss modules 配置分析与整理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文前說明

作為碼農中的一員,需要不斷的學習,我工作之余將一些分析總結和學習筆記寫成博客與大家一起交流,也希望采用這種方式記錄自己的學習之旅。

本文僅供學習交流使用,侵權必刪。
不用于商業目的,轉載請注明出處。

分析整理的版本為 Ovirt 3.4.5 版本。

項目的 pom 文件中,使用 <artifactId>jboss-modules-maven-plugin</artifactId> 插件,引入 JBoss 模塊化管理,這是 JBoss 支持的靜態加載配置方式的一種,采用模塊化管理的項目有:dependencies、tools、compat、common、utils、dal、authentication

  • utils 項目為例,modules 配置文件存放位置:
    /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"> <resources><resource-root path="utils.jar"/> </resources><dependencies> <module name="javax.api"/> <module name="javax.servlet.api"/><module name="org.apache.commons.fileupload"/> </dependencies> </module>
    • <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 的模塊化(非層次化)類加載以及執行環境的實現。因此如果一個模塊需要另一個模塊的某些功能,必須進行依賴,這個依賴是不能傳遞的,例如 A 依賴于 B,B 依賴于 C,如果 A 使用了 C 的功能,那么 A 必須依賴 C。

  • Jboss 本身具有了很多的模塊,可以直接進行依賴。文件位置:安裝目錄 /modules 中。例如 javax.api、javax.servlet.api 都是 Jboss 自帶的模塊。

  • 配置了模塊,還需要把模塊與 maven 管理的 jar 包配置建立關聯關系。這部分工作 dependencies 項目進行了配置。engine 中只要是采用模塊化管理的項目中引入了第三方包,都需要在 dependencies 項目中進行關聯性配置。

    • dependenciespom 文件,配置了<dependency>,這里定義了 mavenjar 包管理。
    • <artifactId>jboss-modules-maven-plugin</artifactId><modules> 標簽中,配置了模塊的關聯關系,例如:
    <module> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <moduleName>org.apache.commons.fileupload</moduleName> </module>

    mavencommons-fileupload 包與模塊 org.apache.commons.fileupload 進行關聯。

  • utils 為例,依賴其他模塊。
    • 依賴 Jboss 自身包含的模塊,那么只需要在 modules 文件中配置即可。
    <dependencies> <module name="javax.api"/> <module name="javax.servlet.api"/> </dependencies>
    • 依賴的第三方包,是 Jboss 自身不包含的,那么需要在
      /backend/manager/dependencies/src/main/modules 文件夾下面,按模塊名稱建立目錄。例如 org.apache.commons.fileupload 就需要創建 org/apache/commons/fileupload/main/ 目錄,在該目錄下創建 module.xml 配置文件,配置為新的模塊:
    <module xmlns="urn:jboss:module:1.1" name="org.apache.commons.fileupload"><resources> <resource-root path="commons-fileupload.jar"/> </resources> <dependencies> <module name="javax.servlet.api"/> <module name="org.apache.commons.io"/> </dependencies> </module>

    再引入該模塊:

    <dependencies> <module name="javax.api"/> <module name="javax.servlet.api"/> <module name="org.apache.commons.fileupload"/> </dependencies>

    最理想的配置是,所有的模塊都能找到依賴關系,最底層的依賴是 Jboss 自身包含的依賴。但是實際情況可能會復雜很多,模塊與模塊的依賴關系,可以通過查詢 maven中央庫 了解。

    • 如果模塊單獨使用的可能性不大,每次都需要聯合其他模塊一起使用實現某個功能,那么可以將這些模塊統一配置為一個模塊,簡化配置。例如:
    <module xmlns="urn:jboss:module:1.1" name="org.springframework"> <resources> <resource-root path="spring-aop.jar"/><resource-root path="spring-asm.jar"/><resource-root path="spring-beans.jar"/> <resource-root path="spring-context.jar"/> <resource-root path="spring-core.jar"/> <resource-root path="spring-expression.jar"/> <resource-root path="spring-instrument.jar"/> <resource-root path="spring-jdbc.jar"/> <resource-root path="spring-ldap-core.jar"/> <resource-root path="spring-tx.jar"/> </resources> <dependencies> <module name="javax.api"/> <module name="org.apache.commons.lang"/> <module name="org.apache.commons.logging"/> <module name="org.aopalliance"/> <module name="sun.jdk"/> </dependencies> </module>

    將 spring 所需 jar 包統一劃分為一個模塊,使用到 spring 的地方,統一引入該模塊即可。



    作者:羽杰
    鏈接:https://www.jianshu.com/p/c4e570176311
    來源:簡書
    ?

    總結

    以上是生活随笔為你收集整理的【Ovirt 笔记】JBoss modules 配置分析与整理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。