Gradle OSGi 插件

2022-08-03 16:01 更新

OSGi 插件提供了工廠方法來創(chuàng)建一個(gè) OsgiManifest 對(duì)象。OsgiManifest 繼承自 Manifest。如果應(yīng)用了 Java 插件,OSGi 插件將把默認(rèn) jar 的 manifest 對(duì)象替換為一個(gè) OsgiManifest 對(duì)象。被替換的 manifest 會(huì)被合并到新的對(duì)象單中。

OSGi 插件使 Peter Kriens BND tool 大量使用。

用法

要使用 OSGi 插件,請(qǐng)?jiān)跇?gòu)建腳本中包含以下語句:

使用 OSGi 插件

build.gradle

apply plugin: 'osgi'   

隱式應(yīng)用插件

適用于 Java 基礎(chǔ)插件。

任務(wù)

此插件不會(huì)添加任何任務(wù)。

依賴管理

待決定

約定對(duì)象

OSGi 插件添加了下列約定對(duì)象: OsgiPluginConvention

約定屬性

OSGi 插件沒有向 project 添加任何的公約屬性。

約定方法

OSGi 插件添加了以下方法。有關(guān)更多詳細(xì)信息,請(qǐng)參見約定對(duì)象的 API 文檔。

表 37.1. OSGi 方法

方法 返回類型 描述
osgiManifest() OsgiManifest 返回一個(gè) OsgiManifest 對(duì)象。
osgiManifest(Closure cl) OsgiManifest 返回一個(gè)通過閉包配置的 OsgiManifest 對(duì)象。

在 classes 目錄下的類文件會(huì)被分析出關(guān)于它們的包的依賴,以及它們所公布的包名。并基于此計(jì)算 OSGi Manifest 中 Import-Package 和 Export-Package 的值。如果 classpath 中包含了 jar 包和 OSGi bundle,bundle 信息會(huì)被用來指定 Import-Package 的值的版本信息。在 OsgiManifest 對(duì)象的顯式屬性旁邊,你可以添加 instructions。

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 調(diào)用的第一個(gè)參數(shù)是屬性的鍵。其他參數(shù)構(gòu)成了它的值。他們由 Gradle 使用,分隔符連接。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)