BndTools使用指南

      (1) bnd简介

      BndTools提供了一种使用Eclipse开发OSGi Bundles的方式。它没有通过直接编辑Manifest.MF 的方式定义

依赖关系,而是使用Bnd 文件基于Bnd工具驱动工具链(toolchain)。此外,BndTools还具有自动化语义版本控

制功能(automated semantic versioning),它会将已构建的组件和之前发布的组件相比较,让算法来决定是否对

大、中、小三种版本号进行升级,而不是让用户人为决定。

     (2) 与bnd的关系

     对于构建和分析OSGi Bundle来说,Bnd是一种极为强大的底层工具。是由Peter Kriens(OSGi联盟的技术总监)

开发的,OSGi联盟使用它来构建自己的API套件、兼容性测试以及引用实现的Bundle。作为一种底层工具,它很

容易继承,并且可以直接从命令行调用,可以被ANT任务所使用,也可以嵌入到Maven和IDE中。

     BndTools使用bnd作为它的“引擎”。所有主要功能都是bnd本身提供的,而BndTools只是描述什么时候应该调

用bnd,并以更好的形式来展现结果。由于很多其它工具也集成了bnd,所以bnd所使用的描述文件几乎已经成为

一种事实上的标准,这意味着BndTools开发者很容易与使 用其它工具的开发者协作,也可以在选择其它工具的时

候很容易地完成迁移。

     (3) 与PDE比较

     Eclipse PDE是另一种基于Eclipse的OSGi开发环境。BndTools没有以任何方式重用PDE,但是BndTools和

PDE都是基于Eclipse的Java开发工具集(JDT)构建的。

     PDE所遵循的开发哲学和bnd以及BndTools不同,它被称之为“manifest优先(manifest first)”。在PDE中,

需要直接编辑MANIFEST.MF文件,它会直接集成到Bundle中,而不需要任何后续处理。而BndTools思想是,

MANIFEST.MF应该当作编译器输出来对待:也就是说,应该使用更简单的源代码来生成这个文件。这非常重要,

因为完整的MANIFEST.MF文件中会包含很多重复的信息,或者应该直接从Java代码中继承的信息,比方说包一级

的依赖关系列表。手动编辑这样的信息是个苦力活,而且容易出错。

1. BndTools安装配置

    请参考:http://bndtools.org/installation.html

    Update Site: http://bndtools-updates.s3.amazonaws.com/

2. BndTools使用

3. 参考资源

    http://wso2.org/library/tutorials/develop-osgi-bundles-using-maven-bundle-plugin

    http://njbartlett.name/2011/03/23/towards-maven-support-in-bndtools.html

    http://bndtools.org/installation.html

你可能感兴趣的:(tools)