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 – 模块描述

from: http://www.hollischuang.com/archives/856

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值