3.8. 在自定义模块中部署标签库描述符(TLD)

如果您有多个应用使用通用标签库描述符(TLD),请将 TLD 与应用分隔开,使它们位于一个中央和唯一的位置。这实现了对 TLD 的轻松添加和更新,无需更新使用它们的每一个应用。

这可以通过创建自定义 JBoss EAP 模块来实现,该模块包含 TLD JAR,并在应用中声明对该模块的依赖关系。如需更多信息,请参阅模块和依赖项

注意

确保至少有一个 JAR 包含 TLD,并且 TLD 打包在 META-INF 中。

在自定义模块中部署 TLD

  1. 使用管理 CLI 连接您的 JBoss EAP 实例,再执行以下命令来创建包含 TLD JAR 的自定义模块:

    module add --name=MyTagLibs --resources=/path/to/TLDarchive.jar
    重要

    使用 模块 管理 CLI 命令添加和删除模块,仅作为技术预览提供。此命令不适合在受管域中使用,或在远程连接管理 CLI 时使用。在生产环境中,应当手动添加和删除模块。如需更多信息,请参阅 手动创建自定义模块并手动 删除 JBoss EAP 配置指南中的自定义模块部分

    技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

    如需有关技术预览功能支持范围的信息,请参阅红帽客户门户网站中的技术预览功能支持范围。

    如果 TLD 与需要依赖项的类打包,请使用 --dependencies 选项确保在创建自定义模块时指定这些依赖项。

    在创建模块时,您可以通过使用特定于文件系统的分隔符来指定多个 JAR 资源。

    • Linux - 示例, --resources=<path-to-jar>:<path-to-another-jar>
    • 对于 Windows - ;.示例, --resources=<path-to-jar>;<path-to-another-jar>

      注意
      --resources
      除非使用 --module-xml, 否则此模块是必需的。它列出了文件系统路径(通常 JAR 文件),它由特定于文件系统的路径分隔符分隔,如 java.io.File.pathSeparatorChar。指定的文件将复制到创建的模块的 目录中。
      --resource-delimiter
      它是 user-defined 路径分隔符,用于 resources 参数。如果存在此参数,则命令解析器将在此处使用值,而不使用特定于文件系统的路径分隔符。这允许在跨平台脚本中使用 模块 命令。
  2. 在您的应用中,使用 Add a Explicit Module 依赖项到 Deployment 中所述的方法声明新的 MyTagLibs 自定义模块的依赖关系
重要

在声明依赖项时,确保您也导入 META-INF。例如,MANIFEST.MF:

Dependencies: com.MyTagLibs meta-inf

或者,对于 jboss-deployment-structure.xml,请使用 meta-inf 属性。