×
Gradle 简介Gradle 概述Gradle 安装Gradle 问题反馈Gradle 构建基础Gradle Java 构建入门Gradle 依赖管理基础Gradle Groovy 快速入门Gradle Web 工程构建Gradle 命令行的基本使用Gradle 图形用户界面Gradle 编写构建脚本Gradle 教程 - 杂七杂八Gradle 任务详述Gradle 使用文件Gradle 从 Gradle 中调用 AntGradle 日志Gradle 守护进程Gradle 构建环境Gradle 插件Gradle 标准的 Gradle 插件Gradle Java 插件Gradle Groovy 插件Gradle Scala 插件Gradle War 插件Gradle Ear 插件Gradle Jetty 插件Gradle Checkstyle 插件Gradle CodeNarc 插件Gradle FindBugs 插件Gradle JDepend 插件Gradle PMD 插件Gradle JaCoCo 插件Gradle Sonar 插件Gradle Sonar Runner 插件Gradle OSGi 插件

Gradle OSGi 插件


OSGi 插件提供了工厂方法来创建一个 OsgiManifest 对象。OsgiManifest 继承自 Manifest。如果应用了 Java 插件,OSGi 插件将把默认 jar 的 manifest 对象替换为一个 OsgiManifest 对象。被替换的 manifest 会被合并到新的对象单中。

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

用法

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

使用 OSGi 插件

build.gradle

apply plugin: 'osgi'   

隐式应用插件

适用于 Java 基础插件。

任务

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

依赖管理

待决定

约定对象

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

约定属性

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

约定方法

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

表 37.1. OSGi 方法

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

在 classes 目录下的类文件会被分析出关于它们的包的依赖,以及它们所公布的包名。并基于此计算 OSGi Manifest 中 Import-Package 和 Export-Package 的值。如果 classpath 中包含了 jar 包和 OSGi bundle,bundle 信息会被用来指定 Import-Package 的值的版本信息。在 OsgiManifest 对象的显式属性旁边,你可以添加 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 调用的第一个参数是属性的键。其他参数构成了它的值。他们由 Gradle 使用,分隔符连接。


分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)