BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Maven、Ant、Rake:JRuby 1.5加强配置管理

| 作者 Paul Blair 关注 0 他的粉丝 ,译者 丁雪丰 关注 4 他的粉丝 发布于 2010年4月15日. 估计阅读时间: 5 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

随着即将到来的JRuby 1.5版本(预计将在四月底发布),JRuby项目正通过集成Maven、Ant与Rake不断改善Java与Ruby的互操作性。Ruby开发者将能更多地利用Java平台的优势,而Java开发者也将找到更多的理由在已有的项目中使用Ruby工具。

JRuby 1.5中的一些主要的新特性是在配置管理方面,将Ant和Maven库全面集成进了它的工具集中。通过允许将Java库安装为Gem,JRuby的Maven集成将为JRuby平台带来成千上万的新Gem

感谢来自Sonatype的Tamas Cservenak,我们现在做到了曾经认为是不可实现的事情:让RubyGems完整集成世界上所有的Maven构件!

在JRuby 1.5中,你将能够安装或依赖任意发布到公共Maven库中的Java库。简而言之,你又多了60000多个唾手可得的库。

Maven集成是通过一个针对JRuby的长得像标准RubyGems库的Maven服务器来实现的。JRuby用户会看到像普通Ruby库一样方便地使 用Java库带来的好处。在那些评估新技术时强调库支持的企业里,这也能让JRuby成为更有用的选择。

JRuby 1.5还能帮助Java开发者改善他们自己的依赖管理,这要归功于与Apache Ant构建工具的集成。在最近的一篇博客中,Charles Nutter演示了Java开发者如何用Ruby的Rake构建工具和Apache Ivy依赖管理器(一般应该通过Ant来调用的工具)来管理依赖。Rake能下载并安装Ivn,用它从远程库中获取jar文件和其他资源(包括其依赖), 让它们能用于构建。因为JRuby 1.5能够在Rake中调用Ant任务,这才让一切成为可能。

那些想要减少Ant依赖的Java开发者无需从头重写构建文件。除了能在Rake中调用Ant任务,JRuby的Rake/Ant集成还允许从Ant里调用Rake,将Rake任务导入为Ant目标。Tom Enebo写到

你可以先为几个新功能点写Rakefile,并让团队成员试用一下,看看他们的反应,如果他们喜欢的话……[你就可以]更多地依赖Rake的能力,将Rake任务注入进Ant依赖图中。你的小组依旧使用Ant作为主要构建工具,但你正把更多的构建任务代理到Rake上。

Rake/Ant集成允许开发者利用两者的优势:

我觉得人们把Ant当成这样一种工具——句法不太优雅,但能可靠地完成任务,而且在缺乏命令式编程结构这一点上也让人有些遗憾。这似乎是有意而为,但却让很多程序员不怎么高兴。

Rake,恰好相反,拥有更好的语法,还可以使用各种Ruby语言允许的结构……另一方面,如果你需要执行Java世界里的常用任务,那么Rake就缺少很多Ant包含的标准化跨平台任务了。你可以通过很多讨厌的shell命令来解决问题,一切看上去都很棒,呃,直到你尝试在Windows上进行构建……

由于Rake提供了一套完整的命令式编程环境,有些在Ant里实现起来很繁琐(或者不写自定义Ant任务几乎无法实现)的事情在Rake中就变得轻而易举了。 你可以用Rake来实现那些部分,其他的东西依旧使用Ant。

他补充到,“即使你完全使用Rake,你也需要知道像NetBeans这样的软件希望有一个build.xml,这样它才能和你的项目相结合。”

在Rake/Ant集成让Java开发者的生活更轻松的同时,它也能为JRuby开发者带来好处。在Rake中可以调用Ant,在Rake里,Ant任务能被当作Rake任务进行调用——你只需简单地导入一个Ant构建文件,就能让其中的任务被视为Rake任务了。这使Rake能与现有的Ant构建文件以及基于这些文件的系统结合起来。

“理想情况下我们能涵盖所有可能的集成场景,最终模糊Rake与Ant的界线,”Nutter写到。“我们还会将JRuby的构建迁移到Rake上,大家都为此感到高兴。”

查看英文原文:Maven, Ant, Rake: JRuby 1.5 Enhances Configuration Management

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT