15.4. 嵌套 URL 处理程序


15.4.1. 概述

如果您需要引用未打包为捆绑包的 JAR 文件,您可以使用 Wrap URL 处理程序进行动态转换。Wrap URL 处理程序的实施基于 Peter Krien 的开源 Bnd 工具。

15.4.2. 语法

Wrap URL 具有以下语法:

wrap:locationURL[,instructionsURL][$instructions]
Copy to Clipboard Toggle word wrap

locationURL 可以是找到 JAR 的任何 URL(引用的 JAR 不会 作为捆绑包的格式)。可选的 instructionsURL 引用了一个 Bnd 属性文件,用于指定如何执行捆绑包转换。可选的 指令是 符号、和,由 Bnd 属性列表指定如何执行捆绑包转换。

15.4.3. 默认说明

在大多数情况下,默认的 Bnd 指令可用于嵌套 API JAR 文件。默认情况下,Wrap 将清单标头添加到 JAR 的 META-INF/Manifest.mf 文件中,如 表 15.1 “Wrapping a JAR 的默认说明” 所示。

Expand
表 15.1. Wrapping a JAR 的默认说明
manifest Header默认值

import-Package

*;resolution:=optional

export-Package

来自已封装 JAR 的所有软件包。

Bundle-SymbolicName

JAR 文件的名称,其中任何不在集合 [a-zA-Z0-9_-] 中的字符替换为下划线 _

15.4.4. 例子

以下 Wrap URL 找到 Maven 存储库中的 commons-logging JAR 版本 1.1,并使用默认的 Bnd 属性将其转换为 OSGi 捆绑包:

wrap:mvn:commons-logging/commons-logging/1.1
Copy to Clipboard Toggle word wrap

以下 Wrap URL 使用来自文件的 Bnd 属性,E:\Data\Examples\commons-logging-1.1.bnd:

wrap:mvn:commons-logging/commons-logging/1.1,file:E:/Data/Examples/commons-logging-1.1.bnd
Copy to Clipboard Toggle word wrap

以下 Wrap URL 指定 Bundle-SymbolicName 属性和 Bundle-Version 属性:

wrap:mvn:commons-logging/commons-logging/1.1$Bundle-SymbolicName=apache-comm-log&Bundle-Version=1.1
Copy to Clipboard Toggle word wrap

如果前面的 URL 用作命令行参数,可能需要转义美元符号 \$ 以防止命令行处理它,如下所示:

wrap:mvn:commons-logging/commons-logging/1.1\$Bundle-SymbolicName=apache-comm-log&Bundle-Version=1.1
Copy to Clipboard Toggle word wrap

15.4.5. 参考

有关嵌套 URL 处理程序 的详情,请查看以下引用:

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat