• 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


  • 相关阅读:
    Hibernate第一个程序(最基础的增删改查) --Hibernate
    基于Struts2框架的文件下载 --- Struts2
    Android+Servlet+MySql+JSON实现简单的数据查询操作--C/S架构
    Can't create handler inside thread that has not called Looper.prepare()
    HTTP Status 405
    Android+Struts2实现简单的前后台交互--Android网络编程
    NSOperation、NSOperationQueue(II)
    GCD(III)
    Runtime(IV)
    iOS第三方支付(支付宝)
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7015945.html
Copyright © 2020-2023  润新知