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。要了解常见的清单处理的更多信息,请参阅第 23.13.1节,“Manifest”。如果应用了 Java 插件,OSGi 插件将把默认 jar 的 manifest 对象替换为一个OsgiManifest对象。被替换的manifest 会被合并到新的对象单中。

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

37.1. 用法

要使用 OSGi 插件,请在构建脚本中包含以下语句:

示例 37.1. 使用 OSGi 插件

build.gradle

apply plugin: 'osgi'

37.2. 隐式应用插件

适用于 Java 基础插件。

37.3. 任务

此插件不会添加任何任务。

37.4. 依赖管理

待决定

37.5. 约定对象

OSGi 插件添加了下列约定对象: OsgiPluginConvention

37.5.1. 约定属性

OSGi 插件没有向 project 添加任何的公约属性。

37.5.2. 约定方法

OSGi 插件添加了以下方法。有关更多详细信息,请参见约定对象的 API 文档。

表 37.1. OSGi 方法

方法 返回类型 描述
osgiManifest() OsgiManifest 返回一个 OsgiManifest 对象。
osgiManifest(Closure cl) OsgiManifest 返回一个通过闭包配置的 OsgiManifest 对象。

在classes 目录下的类文件会被分析出关于它们的包的依赖,以及它们所公布的包名。并基于此计算 OSGi Manifest 中Import-PackageExport-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


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值