6.3. 创建自定义模块
可以添加自定义静态模块,以便为在 JBoss EAP 上运行的部署提供资源。您可以 手动创建 模块,也可以使用 管理 CLI 来创建模块。
创建模块后,如果需要将其资源提供给应用 ,则必须将模块添加为依赖项。
手动创建自定义模块
您可以按照以下步骤手动创建自定义模块。
- 在 - EAP_HOME/modules/目录中创建适当的目录结构。- 示例:创建 MySQL JDBC Driver Directory 结构 - cd EAP_HOME/modules/ mkdir -p com/mysql/main - $ cd EAP_HOME/modules/ $ mkdir -p com/mysql/main- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将 JAR 文件复制到 - main/子目录中。- 示例:复制 MySQL JDBC 驱动程序 JAR - cp /path/to/mysql-connector-java-8.0.12.jar EAP_HOME/modules/com/mysql/main/ - $ cp /path/to/mysql-connector-java-8.0.12.jar EAP_HOME/modules/com/mysql/main/- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 在 - main/子目录中创建- module.xml文件,并在 文件中指定适当的资源和依赖项。- 示例:MySQL JDBC Driver - module.xml文件- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
使用管理 CLI 创建自定义模块
				您可以使用模块 add management CLI 命令来创建自定义模块。
			
					使用 模块 管理 CLI 命令添加和删除模块,仅作为技术预览提供。此命令不适合在受管域中使用,或在远程连接管理 CLI 时使用。在生产环境中,应当手动 添加 和删除 模块。
				
技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
如需有关 技术预览功能支持范围 的信息,请参阅红帽客户门户网站中的技术预览功能支持范围。
- 启动 JBoss EAP 服务器。
- 启动管理 CLI。 - EAP_HOME/bin/jboss-cli.sh - $ EAP_HOME/bin/jboss-cli.sh- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用 - 模块 addmanagement CLI 命令,添加新的核心模块。- module add --name=MODULE_NAME --resources=PATH_TO_RESOURCE --dependencies=DEPENDENCIES - module add --name=MODULE_NAME --resources=PATH_TO_RESOURCE --dependencies=DEPENDENCIES- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 示例:创建一个 MySQL 模块 - module add --name=com.mysql --resources=/path/to/mysql-connector-java-8.0.12.jar --dependencies=javaee.api,sun.jdk,ibm.jdk,javax.api,javax.transaction.api - module add --name=com.mysql --resources=/path/to/mysql-connector-java-8.0.12.jar --dependencies=javaee.api,sun.jdk,ibm.jdk,javax.api,javax.transaction.api- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 请参阅 模块命令参数 以了解可用于自定义此命令的参数,例如,使用外部模块目录提供您自己的 - module.xml文件,或者为模块指定备选插槽。您还可以执行- 模块 --help来了解有关使用此命令添加和删除模块的更多详细信息。
添加模块作为依赖性
为了使您的应用能够访问此模块的资源,您必须将模块添加为依赖项。
- 有关将模块添加为依赖性到所有应用程序的说明,请参阅 Define Global Modules 部分。
例如,下列步骤添加一个 JAR 文件,该文件包含多个属性文件作为模块,再定义全局模块,以便应用随后可以加载这些属性。
- 将 JAR 文件添加为核心模块。 - module add --name=myprops --resources=/path/to/properties.jar - module add --name=myprops --resources=/path/to/properties.jar- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将此模块定义为全局模块,使它可供所有部署使用。 - /subsystem=ee:list-add(name=global-modules,value={name=myprops})- /subsystem=ee:list-add(name=global-modules,value={name=myprops})- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 然后,应用可以从 JAR 中包含的其中一个属性文件中检索属性。 - Thread.currentThread().getContextClassLoader().getResource("my.properties");- Thread.currentThread().getContextClassLoader().getResource("my.properties");- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow