OSGI學習系列(三)MANIFEST.MF詳解
<一>在osgi專案中META-INF目錄下有一個MANIFEST.MF檔案,是載入bundle時必不可少的,如下圖所示:
<二>下面簡單解釋一下其中的幾個元素
#幾個必須的元素
Bundle-ManifestVersion:2
// 定義了bundle遵循規範的規則,1表示r3規範 2表示r4和以後的版本
Manifest-Version:1.0
// 主要的版本號
Bundle-SymbolicName:org.activiti.designer - help;singleton:=true
//
唯一的bundle名稱,相當於在系統中的id。singleton表示是否使用單啟動方式
#可選的
Bundle-Name:
Activiti Designer - help // bundel 名稱
Bundle-Vendor: Activiti //釋出商
Bundle-RequiredExecutionEnvironment: J2SE-1.6//需要的執行環境
#下面是一些引用包的資訊,包括包名稱和版本號,只有引用了這些包,才能讓classloader裝載
Import-Package:
javax.servlet;version="2.4.0",
javax.servlet.http;version="2.4.0",
org.apache.commons.logging;version="1.0.4",
org.osgi.framework;version="1.4.0"
#這是直接引用整個bundle,一般不提倡整個引用,這裡是用來定義擴充套件
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
org.eclipse.graphiti,
org.eclipse.graphiti.ui,
org.eclipse.core.resources,
org.eclipse.ui.views.properties.tabbed
#用得較多的幾個
Bundle-ClassPath: .,dom4j-1.6.1.jar
// Bundle 的 Classpath
Export-Package:
org.activiti.designer,
org.activiti.designer.actions,
org.activiti.designer.command //對外暴露的 package
Fragment-Host:
//Fragment 型別 Bundle 所屬的 Bundle名
DynamicImport-Package
//Bundle動態引用的 package