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 的位置 不是 捆绑包的格式化)。可选 的说明URL 引用一个第二属性文件,该文件指定如何执行捆绑包转换。可选 的说明 是一个 符号,以及 分隔的 Bnd 属性列表,用于指定如何执行捆绑包转换。

15.4.3. 默认说明

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

Expand
表 15.1. 用于编写 JAR 的默认指令
清单标头默认值

import-Package

*;resolution:=optional

export-Package

来自嵌套 JAR 的所有软件包。

Bundle-SymbolicName

JAR 文件的名称,其中不属于 set [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 使用来自文件 E:\Data\Examples\commons-logging-1.1.bnd 的 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