Gradle 1.12使用者指南翻譯——第三十七章. OSGi 外掛
本文由CSDN部落格萬一博主翻譯,其他章節的翻譯請參見:
http://blog.csdn.net/column/details/gradle-translation.html
翻譯專案請關注Github上的地址:
https://github.com/msdx/gradledoc/tree/1.12。
直接瀏覽雙語版的文件請訪問:
http://gradledoc.qiniudn.com/1.12/userguide/userguide.html。
另外,Android 手機使用者可通過我寫的一個程式瀏覽文件,帶快取功能的,目前0.2.1版本相容 android 2.2以上系統,地址如下:
http://www.wandoujia.com/apps/com.githang.gradledoc
翻譯不易,轉載請註明本文在CSDN部落格上的出處:
http://blog.csdn.net/maosidiaoxian/article/details/46825947
關於我對Gradle的翻譯,以Github上的專案及http://gradledoc.qiniudn.com 上的文件為準。如有發現翻譯有誤的地方,將首先在以上兩個地方更新。因時間精力問題,部落格中發表的譯文基本不會同步修改。
第三十七章. OSGi 外掛
OSGi 外掛提供了工廠方法來建立一個OsgiManifest
物件。OsgiManifest
繼承自Manifest
。要了解常見的清單處理的更多資訊,請參閱OsgiManifest
物件。被替換的manifest
會被合併到新的物件單中。
OSGi 外掛使 Peter KriensBND tool大量使用。
37.1. 用法
要使用 OSGi 外掛,請在構建指令碼中包含以下語句:
示例 37.1. 使用 OSGi 外掛
build.gradle
apply plugin: 'osgi'
37.2. 隱式應用外掛
適用於 Java 基礎外掛。
37.3. 任務
此外掛不會新增任何任務。
37.4. 依賴管理
待決定
37.5. 約定物件
37.5.1. 約定屬性
OSGi 外掛沒有向 project 新增任何的公約屬性。
37.5.2. 約定方法
OSGi 外掛添加了以下方法。有關更多詳細資訊,請參見約定物件的 API 文件。
表 37.1. OSGi 方法
方法 | 返回型別 | 描述 |
osgiManifest() | 返回一個 OsgiManifest 物件。 | |
osgiManifest(Closure cl) | 返回一個通過閉包配置的 OsgiManifest 物件。 |
在classes 目錄下的類檔案會被分析出關於它們的包的依賴,以及它們所公佈的包名。並基於此計算 OSGi Manifest 中Import-Package和Export-Package的值。如果
classpath 中包含了 jar 包和 OSGi bundle,bundle 資訊會被用來指定Import-Package的值的版本資訊。在OsgiManifest
物件的顯式屬性旁邊,你可以新增instructions。
示例 37.2. OSGi MANIFEST.MF 檔案配置
build.gradle
jar { manifest { // the manifest of the default jar is of type OsgiManifest name = 'overwrittenSpecialOsgiName' instruction 'Private-Package', 'org.mycomp.package1', 'org.mycomp.package2' instruction 'Bundle-Vendor', 'MyCompany' instruction 'Bundle-Description', 'Platform2: Metrics 2 Measures Framework' instruction 'Bundle-DocURL', 'http://www.mycompany.com' } } task fooJar(type: Jar) { manifest = osgiManifest { ~instruction 'Bundle-Vendor', 'MyCompany' } }
instruction 呼叫的第一個引數是屬性的鍵。其他引數構成了它的值。他們由 Gradle 使用,
分隔符連線。要了解更多關於
instructions 的資訊,可以看看BND
tool。