天道不一定酬所有勤
但是,天道只酬勤

JBoss Modules 模塊描述文件解析

jboss的module模塊描述文件是一個XML文件,用來描述模塊的結構,內容,依賴關系,過濾器,以及其它屬性。它的格式是富有表現力的,用于使基于文件系統的模塊裝載器允許描述文件和模塊內容放在一起,而不需要在模塊內容之中。特別是,它在文件系統中的位置是將模塊名轉成以點號分割的目錄,并加上該模塊的version slot。然后以模塊根路徑附上該目錄就可以找到 module.xml 文件。

下面是一個 JBoss Application Server 的模塊描述文件:

模塊描述文件示例:

<?xml version="1.0" encoding="UTF-8"?>
    <module xmlns="urn:jboss:module:1.0"  name="org.jboss.msc">  
        <main-class name="org.jboss.msc.Version"/>  
        <resources>  
            <resource-root path="jboss-msc-1.0.1.GA.jar"/>  
        </resources>  

        <dependencies>  
            <module name="javax.api"/>  
            <module name="org.jboss.logging"/>  
            <module name="org.jboss.modules"/>  
            <!-- Optional deps -->  
            <module name="javax.inject.api" optional="true"/>  
            <module name="org.jboss.threads" optional="true"/>  
            <module name="org.jboss.vfs" optional="true"/>  
        </dependencies>  
    </module>  

module 元素

模塊描述XML有一個根元素module 應用于 urn:jboss:module:1.0 命名空間,它支持以下屬性:

QQ20151219-0

module元素可以包含下列子元素:

QQ20151219-1

定義了main-class 元素的模塊意味著該模塊是可執行的。也就是說,模塊名能夠被列在命令行中,然后main-class中的標準靜態方法 main(String[])會被執行。

main-class元素支持以下屬性:

QQ20151219-2

這個元素不包含任何子元素。

main class 不需要是該模塊的實際資源,也不需要被exported。任何對于該模塊可見的public class(包括所有imported的依賴或者資源)都可以作為main class, 只要它有方法public static void main(String[] args)。

resources 元素

為了讓一個模塊具有實際的內容,你必須為其定義至少一個resources元素。

resources元素不支持任何屬性;它包含0至多個resource-root元素。resource-root元素支持下面的屬性:

QQ20151219-3

另外,resource-root 元素可能包含一個子元素:

QQ20151219-4

參考過濾器定義一節獲得更多信息。

dependencies 元素

一個模塊可能通過dependencies元素描述一個或多個對于其它模塊的依賴。dependencies元素不支持任何屬性,它包含一個或多個dependency元素,支持一下屬性:

QQ20151219-5

對于Java service provider接口機制的介紹,可以參考: http://download.oracle.com/javase/tutorial/sound/SPI-intro.html

另外,dependencies 元素支持以下子元素:

QQ20151219-6

對依賴模塊添加exclude的示例:

<dependencies>  
    <module name="org.jboss.example">  
        <imports>  
            <exclude-set>  
                <path name="org.jboss.example.tests"/>  
            </exclude-set>  
        </imports>  
    </module>  
</dependencies>  

參考過濾器定義獲得關于過濾器更多的信息。

參考資料:

JBoss Modules – 模塊描述

(全文完) 歡迎關注『Java之道』微信公眾號
贊(1)
如未加特殊說明,此網站文章均為原創,轉載必須注明出處。HollisChuang's Blog » JBoss Modules 模塊描述文件解析
分享到: 更多 (0)

評論 搶沙發

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址

HollisChuang's Blog

聯系我關于我
大乐透复式返奖 精准生肖中特 黑龙江快乐十分游戏规则 股票开户优惠 大众扎鸟麻将规则 澳洲幸运8计划软件 山西快乐十分20200410015 山西体彩11选5下载 平特一肖的正确买法 重庆麻将换三张算钱 融丰配资