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 命名空间,它支持以下属性:

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

定义了main-class 元素的模块意味着该模块是可执行的。也就是说,模块名能够被列在命令行中,然后main-class中的标准静态方法 main(String[])会被执行。

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

这个元素不包含任何子元素。

main class 不需要是该模块的实际资源,也不需要被exported。任何对于该模块可见的public class(包括所有imported的依赖或者资源)都可以作为main class, 只要它有方法public static void main(String[] args)

resources 元素

为了让一个模块具有实际的内容,你必须为其定义至少一个resources元素。

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

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

参考过滤器定义一节获得更多信息。

dependencies 元素

一个模块可能通过dependencies元素描述一个或多个对于其它模块的依赖。dependencies元素不支持任何属性,它包含一个或多个dependency元素,支持一下属性:

对于Java service provider接口机制的介绍,可以参考: http://download.oracle.com/javase/tutorial/sound/SPI-intro.html

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

对依赖模块添加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

JBoss Modules 模块描述文件解析相关推荐

  1. Hello World With JBoss Modules

    JBoss Modules是一个相当有趣的项目,他在Jboss应用服务器和Jboss生态系统项目中扮演者重要的角色.但是,网上关于Jboss Modules的东西却很少.甚至Jboss Modules ...

  2. JBoss 系列八十五: JBoss Modules 简单介绍

    概述 从JBoss AS7开始,Classloader这块开始使用全新的JBoss Modules.本文简单介绍说明JBoss Modules的设计思路,以及给出一个例子说明这一设计思路. JBoss ...

  3. iOS上架App Store之Appuploader制作描述文件和证书

    公司采用AppCan平台开发了移动端应用,由于公司没有配备苹果电脑,所以为了上线iosAPP查了很多资料,装了个虚拟机卡的要死,操作一步卡死半天,严重影响效率,最后终于发现了一个很好用的工具AppUp ...

  4. 苹果iOS开发 解析描述文件 读取mobileprovisioning profile

    如果想使用命令行自动打包ios,就需要从描述文件中获取到相关信息,本文介绍如何解析描述文件. 工具使用Mac OS自带的命令: plistBuddy="/usr/libexec/PlistB ...

  5. p12解析流程_iOS证书及描述文件制作流程详解

    我们在一些iOS应用Windows开发平台,进行打包iOS应用包ipa文件时,需要用到两个iOS证书文件p12及profile文件mobileprovision 下面介绍如何使用工具快速申请! 一.申 ...

  6. 使用JBoss Modules来模块化Java

    本文的英文原文Modularized Java with JBoss Modules是JBoss Modules的作者David写的,由HollisChuang翻译在使用JBoss Modules来模 ...

  7. 文件解析漏洞总结-Apache

    Apache解析漏洞 多后缀名解析:xx.php.xxoo Apache认为一个文件可以有多个后缀名,例如:peak.txt.jpg.xx Apache的解析规则是从后(右)往前(左)依次判断后缀名, ...

  8. 【linux】 apache多后缀文件解析漏洞复现

    文章目录 一. 漏洞描述 二. 漏洞原理 三. 实验环境 1. apache版本 2. 在网站根目录我们建一个index.php,测试是否解析 3. 修改文件名测试 4. 用文件名不包含php的文件测 ...

  9. ansible常用模块之 -- template模块 – 将文件模板输出到远程服务器

    ansible常用模块之 -- template模块 – 将文件模板输出到远程服务器 template模块 – 将文件模板输出到远程服务器 一.摘要 二.参数 三.示例 template模块 – 将文 ...

最新文章

  1. 如何使用PHP获取当前年份?
  2. python培训班排行榜-西安排名前十的python开发培训学校排行榜
  3. 实现一个 DFA 正则表达式引擎 - 4. DFA 的最小化
  4. dart系列之:在dart中使用生成器
  5. ubuntu下面markdown转化为word文档
  6. c++定义一个动态全局变量_静态链接与动态链接的宏观概述及微观详解
  7. 触发器_触发器第三弹
  8. Flask 开发填坑
  9. 7教程统计意义_极少人知道的SPSS数据拆分技巧——「杏花开生物医药统计」
  10. 原型工具Axure:常用效果制作(选中、淘宝网导航、轮播图、toast效果、呼出键盘、省市二级联动、步进器、订单详情案例、中继器)
  11. 【小程序】自定义组件设置样式失效使用外部样式类解决
  12. 最新微博图片相册批量下载工具
  13. 对称、群论与魔术(三)——常见的几何对称性简介
  14. 静态网页设计课后练习
  15. NLM-P (使用积分图像进行算法的优化)
  16. lnmp搭建qq农场
  17. CCF历年题目201803-4 棋局评估
  18. 异或(XOR)运算加密/解密在线工具
  19. [源码分享] HIVE表数据量统计邮件
  20. Android 音量控制流程分析

热门文章

  1. Python基础知识(第七天)
  2. 【数据工程】工具与思维结合,会爆发奇效
  3. CAFFE学习笔记(一)Caffe_Example之训练mnist
  4. java filter 返回错误消息_利用java filter 实现业务异常拦截 跳转到错误信息提示页面...
  5. 实战并发编程 - 02解决并发问题常用套路
  6. jvm性能调优 - 14JVM的老年代垃圾回收器CMS原理
  7. Maven-EclipseEE使用Maven构建Java web项目从0到1
  8. 万全服务器t350装系统_计算机中那些事儿(八):再历装系统之终身学习
  9. 学习笔记(五)——JavaScript(二)
  10. mysql连接优先级设置_MySQL的按优先级等效连接