部署清单 META-INF/DEPLOYMENT.MF 指定构成应用程序的所有捆绑软件,其中包括以下依赖关系分析所需的捆绑软件。部署清单指定在应用程序中所使用的每个捆绑软件的确切版本。在安装 EBA 资产时会自动创建部署清单,它确保在每一次应用程序服务器启动时,组成该应用程序的捆绑软件是相同的。
在安装应用程序之后,可通过配置该 EBA 资产来更新捆绑软件的版本。
以下代码是部署清单文件内容的示例:
Manifest-Version: 1.0
Deployed-Content: bundle1;deployed-version=1.0.0.qualifier
Application-SymbolicName: bundle.app
Application-Version: 1.0.0.qualifier
Import-Package: javax.servlet.jsp;version="2.0.0",javax.persistence;ve
rsion="0.0.0",javax.servlet.http;version="2.5.0",javax.servlet;versio
n="2.5.0",javax.servlet.jsp.el;version="2.0.0",javax.servlet.jsp.tage
xt;version="2.0.0",javax.el;version="2.0.0"
部署清单包含以下头:
- Manifest-Version
- 清单格式的版本号。
- Application-SymbolicName
- 应用程序的唯一符号名称,它使用与 Java™ 类似的软件包表示法。此符号名称与应用程序清单中的 Application-SymbolicName 值相匹配。
- Application-Version
- 应用程序的版本,它使用适用于捆绑软件版本的 OSGi 语法。此版本与应用程序清单中的 Application-Version 值相匹配。
- Deployed-Content
捆绑软件的符号名称和要使用的确切版本的逗号分隔列表。
此列表包含在应用程序清单中的 Application-Content 头中列出的所有捆绑软件以及根据依赖关系分析导入的捆绑软件。通过使用已转换捆绑软件的符号名称包含了非 OSGi 模块类型。
Deployed-Content 头具有以下伪指令:
- deployed-version
- 捆绑软件的确切版本,使用适用于版本的 OSGi 语法进行指定。
- Deployed-Use-Bundle
- 捆绑软件或组合捆绑软件的列表,这些捆绑软件满足
Deployed-Content 列表中捆绑软件的软件包依赖性。Deployed-Use-Content 列表中的每个元素必须为 Deployed-Content 列表中的至少一个捆绑软件提供至少一个包。Deployed-Use-Bundle 列表是 Use-Bundle 列表的确切子集。在运行时,这些捆绑软件将被加载到共享捆绑软件空间中。在应用程序部署后,管理员可更新从 Use-Bundle 列表映射到 Deployed-Use-Bundle 列表的捆绑软件。
- Provision-Bundle
- 由于解析 OSGi 应用程序而需要的其他捆绑软件和组合捆绑软件的列表。每一个捆绑软件或组合捆绑软件都会在运行时装入到共享的捆绑软件空间中;但是,它们可能不是必需的。在应用程序部署后,管理员无法更新 Provision-BundleAn 列表中的捆绑软件。
- Import-Package
- 软件包的列表,Deployed-Content 列表中的捆绑软件从 Deployed-Use-Bundle 和 Provision-Bundle 列表中的捆绑软件和组合捆绑软件使用这些软件包。对于从 Deployed-Use-Bundle 列表中使用的包,包导入具有 ;bundle-symbolic-name 和 ;bundle-version 属性。