1. 程式人生 > >OSGI學習系列(三)MANIFEST.MF詳解

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