为了Gradle,Spring摒弃OSGi

一段时间以来,SpringSource一直为Gradle(基于Groovy语言)构建系统的支持者。在一年半之前,SpringSource便开始将构建系统从Maven转向Gradle。现在,Spring 3.2 的开发已经接近尾声,而在此版本中,OSGi元数据将不会发布到Maven库里。这样看来,OSGi显然是这场转变的受害者。

作为曾经OSGi的坚定拥护者(请见infoQ在2008年对Rod Johnson的采访),SpringSource开始逐渐远离OSGi和模块化技术了。虽然起初,像Srping Roo和Spring Dynamic Modules这样的产品都在OSGi上有所投资,但是由于Bundle-Name所带来的紧依赖和精确版本依赖等问题,对OSGi的采用受到了阻碍。这种设计上的失败还将继续存在于SpringSource EBR中。

SpringSource曾经通过重写包名和修改版本化导入的方式来解决Spring Dynamic Modules的问题,但是这样所带来的问题比其所解决的问题还多,结果限制了Spring在商业领域的采用量。在2009年,Spring DM开始向Eclipse Foundation转移,最终的结果变成了Eclipse Virgo。

也是从那时开始,Rod Johnson开始改变自己的观点,于是在去年,他谈到,OSGi不够简单。去年年末,Spring在发布中最后一次包含了OSGi元数据。在Spring 3.1基础上的所有服务都将继续包含OSGi元数据,因为Spring3.1是根据Maven标准来构建的。然而,在最新的Spring 3.2将不再包含OSGi元数据了。针对此,Gradle提供了一个OSGi插件,该插件的功能与Maven Felix BND插件相同。

虽然Rod Johnson在今年年初离开了SpringSource,但是从Maven到Gradle的迁移已经就绪,而SpringSource新的管理层很可能会继续摒弃OSGi。但不管如何,SpringSource EBR和Eclipse Virgo对OSGi的依赖像白纸黑字一样写着。将来,要得到兼容OSGi的Spring模块可能只有通过有社区支持的EBR了。而对于那些在防火墙之后或在Maven中使用代理的人来说,连享受这样社区支持EBR的机会估计都没有了。

你会介意在Spring所有的工程摒弃中OSGi元数据吗?你会认为SpringSource对Gradle的进一步采用会减少Maven Central中的OSGi内容吗?请在下面发表你的评论。

查看英文原文http://www.infoq.com/news/2012/10/spring-osgi-gradle

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

你可能感兴趣的:(为了Gradle,Spring摒弃OSGi)