InfoQ 与 Jason Van Zyl 探讨 Sonatye、Eclipse 基金会和 Maven

阅读数:179 2008 年 8 月 12 日

话题:JavaDevOps语言 & 开发文化 & 方法

Snoatype,这家推动 Maven 发展的主要公司,最近宣布他们准备以战略开发者身份加入 Eclipse 基金会。InfoQ 就此采访了 Sonatype 首席技术官和 Maven 创始人Jazon Van Zyl,以了解他们的合作关系及对 Maven 未来的影响。

InfoQ: 您能否详细描述一下,与 Eclipse 的紧密联系会对 Maven 产生什么影响?

Jason Van Zyl: Maven 和 Eclipse 的用户社区存在巨大的重叠。Sonatype 非常希望联姻这两个用户社区,提供两个平台之间的无缝集成。特别是用户将受益最多。 Sonatype 与 Apache Maven 社区保持了长期的关系,我们正在努力培养与 Eclipse 的这种关系,在 Maven 和 Eclipse 社区之间建立一座桥梁。这两者之间一直以来 存在着一点紧张关系:关于如何构建软件、依赖管理系统如何工作、二进制文件应该存放在何处。我们正在建立实用的混合解决方案使开发人员能够完成他们的工 作。

InfoQ:这种合作关系在短期和长期会如何影响 Maven?

Jason Van Zyl: 短 期来看,从技术角度讲,m2eclipse 集成方案让我对 Maven 提供的嵌入技术做了认真的审视。我们已经修改了它的许多方面以方便在 Eclipse 平 台上运行 Maven。从社区的角度讲,大量的用户汇聚到 m2eclispe 上:邮件列表在迅速增长,我们让用户提交了许多新的功能需求,用户对我们创建的 新鲜工具例如 POM 编辑器反应积极。在头四个月下载量接近 10 万次,这对于 pre-1.0 版本来说是相当惊人的。

这一切引起了大量的反馈,也推动了 Maven 内核的变化。许多用户期望在 Eclipse 中增加的行为和可视化界面让我们意识到性能的问题,并开始知道如何发 布 Maven 内核的事件。Maven 是可扩展的,但是如何暴露给 Eclipse 强大的扩展点机制,让我们开始考虑如何在 Maven 平台上提供正确的地方用 于扩展、如何确保在 Eclipse 平台是可见的。

一 个具体的例子就是如何在 Eclipse 中暴露我们的 Nexos(Sanatype's 存储管理器)API,让其他 Eclipse 插件可以查询并获取 Maven 存储的文件。这例子很简单,但非常强大,因为它允许开发人员实现类似“我想在我的 企业库中找到所有代表 web 服务的 API”的想法,同时允许开发人员间接地选择一系列 web 服务、重新组合成一个新的应用。

从 长期来看,Sonatype 是 Eclispe 基金会的战略开发者,这意味着我们在 Eclipse 委员会拥有一席之地,我们有机会影响 Eclipse 平台的 发展方向。当然,没有哪一个组织可以为所欲为。一切都通过对话解决。作为战略开发者,Sonatype 需要提供 8 位全职的员工致力于 m2eclipse, 而且这项工作的大部分都是在 Maven 本身,长期来看有利于 Maven 社区。Maven 通过 Eclispe 社区获得了巨大的关注。

Apache 和 Eclispe 社区,在我看来,是非常互补的。Apache 起源很早,汇集了开源的热情,但有一点混乱。Eclipse 对开源有着更专业和商业化的认 识。这两者对于创建一个支持用户的工程生态环境都是必需的。你可以在 Apache 看到非常热烈讨论,甚至是反对的声音,但是对创新有益。如果一切都是相同 事物的堆砌,没有新事物会诞生。Apache 决不是这样的。但是,当涉及到发布一个产品时,Eclipse 的价值就体现出来了:对知识产权、版本之间高层 次 API 的兼容性、发布时间表中严峻情况的处理等这些的详细关注。对我来说,创建混合系统,兼容并蓄这两个社区来生产类似 m2eclispe 的工具是最理 想的。

从长期来看,Sonatype 与 Eclispe 的合作关系会在 Maven 工程中细化为对发布计划、消灭退化问题和增加与用户沟通的更多关注。这在 2.0.9 和 2.0.10 版本中已经开始了,那时我们通过一个可扩展的版本候选周期来消灭退化问题。

InfoQ:Maven 2.1 预计何时发行?其功能包括哪些?这会产生什么影响吗?

Jason Van Zyl: 目前,我们没有公开讨论时间表。我可以说,我们正在努力尽快发布 Maven 2.1,与 Eclispe 的合作关系的确也起到了推动作用。Maven 2.1 新增的一个主要功能是嵌入技术,这对 m2eclispe 非常重要。现在,我们准备发布 Maven 2.1-alpha-1,我们正在努力确认运行在 2.0.x 版本上的插件的兼容性,这样可以帮助用户非常容易过渡。Eclispe 也只针对发布版进行知识 产权审查流程,因此我们正在积极准备该版本,希望在 Eclispe 知识产权流程中不出什么大的问题。其结果非常乐观。

InfoQ: 社区的反馈对 Maven 产生了什么影响?

Jason Van Zyl: 在 Maven 的最近两个版本中,我们的确以客户为中心。我们努力修补了所有退化问题,添加了最强烈需要的功能。对于 m2eclispe 插件,我们实现了大多数功能,包括工程对象模型(POM)编辑器和 Mexus 存储管理集成。

InfoQ: 在 Maven 的未来发展中,Sonatype 将扮演什么样的角色?

Jason Van Zyl: 在 Sonatype 公司中,有很多员工是 Apache Maven 的长期提交者和 Apache 成员,因此我们一直在深入参与 Maven 的开发。差不多五年前的这个时候,我发起了 Maven 工程,我也没有计划如 何发展。我会继续推动 Maven 社区前进。作为一个商业工作的显而易见的结果,我们会投入更多的人去参与 Maven 相关的技术,所以 Sonatype 将继 续在 Maven 社区中扮演一个关键角色。我想客户提出的很多事情都具有普通的意义,所以我觉得我们所做的工作有利于整个 Maven 社区。我们做了大量 OSGi 集成,还有脚本语言集成,很多人会对这些感兴趣。最后,Sonatype 的参与让那些通常会诞生的技术集成出现的更早一些。

InfoQ: 是否计划在未来版本中,将 Maven 的模块系统以 OSGi 作为规范?

Jason Van Zyl: 是 的!这个集成工程称为 Tycho。它将提供基于 Maven 的解决方案,创建 OSGi 束和 Eclispe 插件。我们目前的原型已经颠覆了 Maven 通常的依 赖解析机制而采用了基于 OSGi 的依赖解析机制。我们可以创建无 POM 的基于 OSGi 的工程。这项工作也涉及到与 p2 存储的交互。我们想要提供的是一套使 用 Maven 用于基于 OSGi 开发的端到端解决方案。我们的许多工作涉及到存储,同时在很大程度上取决于我们在 Nexus 上的变化,它在 Maven 存储、 标准 Eclipse 更新网站和 p2 存储之间提供一个中间层。我们一直在努力做好 Tycho,我们相信它将提供在 Maven 和 OSGi 世界之间所需的统一 / 集成层。Tycho 也将随着 m2eclipse 移入 Eclispe 基金会。

以下是 InfoQ 读者对于该新闻的精彩讨论:



关于 IDE 中立的支持?

Aug 6, 2008 6:52 AM by Sébastien Arbogast

每次我听说一个优秀的开源工程与 Eclispe 基金会建立紧密的伙伴关系我都会有些担心,因为这会让这些工程禁锢于某些厂商。不管你们是否相 信,Eclispe 不是最好的集成开发环境(IDE),很多开发人员使用其他的工具。Maven 一个伟大的地方就在于它是 IDE 中立的,所以我可以在 Intellij 上使用 Maven 工程,而我的同事则在 Eclispe 上使用,一切都很顺利。现在,我担心 Maven 这种新的转移会产生只在 Eclispe 可用的功能而不是其他 IDE。相同的事情正在发生于 SpringSource,Adobe 等等,非常糟糕!

Re:  关于 IDE 中立的支持? Aug 6, 2008 7:44 AM by Eugene Kuleshov



   

Maven 过去是将来也必定是 IDE 中立的。但是,如果你想获得好的 IDE 支持(这对于其他工具同样成立,不仅仅是 Maven),你不得不用与 IDE 厂商 协商。很自然地,如果它是开源的,像 Sonatype 或者 Springsource,你可以期望良好的 IDE 集成。这并不意味着偏向某个厂商,只是某些厂 商具有更好地工具集成。

从根本上说,你评价 IDE 优劣的标准并不适用于其他人。更一步讲,似乎你不太满意 Spring 和 Adobe 对你的 IDE 的支持,所以你或许应该重新评估一下你的标准或者要求你的 IDE 厂商对你正在使用的技术提供支持。

Re:  关于 IDE 中立的支持? Aug 6, 2008 5:54 PM by Rod Johnson

只有Spring IDESpringSource 工具包 是基于 Eclipse 的。我们在SpringSource 应用平台中使用 Eclispe Equinox,但并没有绑定到 Eclispe IDE。

JetBrians 已经在持续构建 Spring 对 Intellij 的更好支持,我相信也存在一个 NetBeans 插件。我们没有资源对每一个 IDE 提供支持,我们认为最好是对最流行的 IDE 提供附加值。

我们的工具包基于 Eclispe 是因为它的普及和可扩展性,也因为我们非常高兴的看到 AJDT 和 Mylyn 让我们如何方便的做产品支持。

Rod Johnson, SpringSource

查看英文原文:Jason Van Zyl Discusses Sonatype, The Eclipse Foundation and Maven