OSGI MANIFEST.MF详解

简介: MANIFEST.MF 文件存储的实际上是 Bundle 的元数据,可以定义 Bundle 的各种特征,同时能更好的对 Bundle 进行标识同时帮助用户对Bundle进行理解。

 什么是MANIFEST.MF?

MANIFEST.MF 文件存储的实际上是 Bundle 的元数据,可以定义 Bundle 的各种特征,同时能更好的对 Bundle 进行标识同时帮助用户对Bundle进行理解。

MANIFEST.MF文件格式:

1、属性声明一般为:name:value

2、换行缩进一个空格

3、每个子句(clause)进一步分解为一个目标(target)和一组由分号分隔的name-value对参数(parameter)

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: basalt core
Bundle-SymbolicName: com.xxx.xxx.core;singleton:=true
Bundle-Version: 1.2.0.qualifier
Bundle-Activator: com.xxx.xxx.core.Activator
Bundle-Vendor: Ruijie
Require-Bundle: org.eclipse.core.runtime,
 org.eclipse.osgi.services;bundle-version="3.6.0",
 org.apache.commons.lang;bundle-version="2.6.0",
 org.h2;bundle-version="1.4.185",
 com.google.guava;bundle-version="21.0.0",
 org.eclipse.e4.core.contexts;bundle-version="1.6.0",
 org.eclipse.e4.core.di;bundle-version="1.6.100",
 org.slf4j.api;bundle-version="1.7.2",
 io.jfxcef;bundle-version="76.0.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Automatic-Module-Name: com.xxx.xxx.web
Bundle-ActivationPolicy: lazy
Export-Package: com.xxx.xxx.core,
 com.xxx.xxx.core.base.dao

image.gif

元素解释:

元素 说明 备注
Manifest-Version 主要的版本号
Bundle-ManifestVersion bundle遵循规范的规则

1:OSGI的R3规范

2:OSGI的R4/R5规范

Bundle-Name bundle名称
Bundle-SymbolicName 唯一的bundle名称 相当于系统id。singleton表示是否使用单启动方式
Bundle-Version bundle版本号
Bundle-Activator Activator类路径 bundle启动和停止时,分别会加载该类的start()和stop()
Bundle-Vendor 发布商
Require-Bundle 依赖的其他bundle 一旦声明依赖某个bundle,意味着可以直接使用所有从这个bundle中导出的所有package
Bundle-RequiredExecutionEnvironment 需要的执行环境
Automatic-Module-Name
Bundle-ActivationPolicy 设置加载策略

该参数目前只有一个:lazy。

设置lazy标识延迟加载该bundle

Export-Package 对外暴露的Package
Import-Package 引用包的信息 只有引用了这些包,才能让classloader装载
Fragment-host 标记宿主bundle 当该bundle是一个Fragment Bundle时候,标记Fragment-host为它的宿主bundle
相关文章
|
XML Java Android开发
#4,Android Studio Android程序结构 工程目录介绍 文件作用 运行配置文件AndroidManifest.xml
#4,Android Studio Android程序结构 工程目录介绍 文件作用 运行配置文件AndroidManifest.xml
|
小程序 Java Apache
Jar包中的META-INF和MANIFEST.MF文件用途
Jar包中的META-INF和MANIFEST.MF文件用途
237 0
|
JSON Java Android开发
Android.bp 文件中引入aar、jar、so库正确编译方法(值得收藏)
Android.bp 文件中引入aar、jar、so库正确编译方法(值得收藏)
3101 0
|
XML 数据格式 Windows
什么是 .manifest 文件
恩,为了大家都能很方便的理解,我将尽量简单通俗地进行描述。[现象]对这个问题的研究是起源于这么一个现象:当你用VC++2005(或者其它.NET)写程序后,在自己的计算机上能毫无问题地运行,但是当把此exe文件拷贝到别人电脑上时,便不能运行了,大致的错误提示如下:应用程序配置不正确,请重新安装程序……或者是MSVCR80D.dll 没有找到什么的(我记得不是很清楚,不过大致是这样的)[分析]看到这样的提示,当然不会傻到重装咯。
2088 0
|
安全 Java Android开发
【Android 安全】DEX 加密 ( 代理 Application 开发 | multiple-dex-core 依赖库开发 | 配置元数据 | 获取 apk 文件并准备相关目录 )
【Android 安全】DEX 加密 ( 代理 Application 开发 | multiple-dex-core 依赖库开发 | 配置元数据 | 获取 apk 文件并准备相关目录 )
162 0
|
Android开发
Plugin.xml -> Manifest.mf
为了更好的实现动态加载/卸载插件,Eclipse从3.0开始实现OSGI规范,原先在plugin.xml文件里定义的很多内容都被推荐放在manifest.mf文件里,只有<extension>和<extension-point>是例外。
1360 0
|
Java 数据库连接 Apache