写点什么

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

  • 2010-04-14
  • 本文字数:1496 字

    阅读完需:约 5 分钟

随着即将到来的 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

2010-04-14 10:571713
用户头像

发布了 135 篇内容, 共 58.7 次阅读, 收获喜欢 43 次。

关注

评论

发布
暂无评论
发现更多内容

从战略到战略决策

Alan

战略管理 使命 愿景 战略思考 MVO

区块链如何解决互联网为基础的广告困境?

CECBC

区块链 互联网广告

腾讯 WXG 后台开发工程师对 MySQL 索引知识点总结

Java架构师迁哥

公安警务大数据可视化平台开发建设

t13823115967

大数据 智慧公安

vue高级进阶系列——用typescript玩转vue和vuex

徐小夕

Java vue.js Vue 大前端

Week 11 work

黄立

【得物技术】搜索引擎技术简介

得物技术

搜索引擎 技术 算法 排序 搜索

智慧公安大数据分析平台开发解决方案

t13823115967

大数据 智慧公安

架构师训练营第十一周

我是谁

极客大学架构师训练营

系统安全与高可用

天天向上

吴桐:2021年中国区块链产业发展的六大趋势

CECBC

区块链 新基建

LeetCode题解:52. N皇后 II,回溯+哈希表,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

京东云的云原生理念及Serverless最佳实践

lidaobing

Defi系统APP开发|Defi软件开发

系统开发

架构师训练营第二周课后作业

万有引力

Windows下常用软件配置

jiangling500

windows 软件配置

HTTP协议概述

落日楼台H

https HTTP 协议 HTTP2.0 HTTP3.0

两年竞业禁止、没有赔偿的CTO | 法庭上的CTO(1)

赵新龙

CTO 竞业禁止 试用期

第二周作业

Geek_b9053c

依赖倒置原则

保障系统稳定高可用的方案

天天向上

极客大学架构师训练营

ETV全球熵APP系统开发|ETV全球熵软件开发

系统开发 现成系统

架构词典: 复盘

lidaobing

架构 复盘

区块链中的保险行业

13828808769

区块链技术应用开发 保险理赔

依赖倒置原则以及接口隔离方式实现接口设计

我们新四军不拿群众一针一线

智能与影像的强耦合:华为Mate 40系列的视觉探索

脑极体

拆解增长黑客之知识篇

懒杨杨

产品 运营 增长

Kafka 和 RocketMQ 之性能对比

中间件兴趣圈

kafka 源码分析 RocketMQ 中间件 性能分析

第一周作业

极客大学 极客大学架构师训练营

只能用分布式锁,也能搞定每秒上千订单的高并发优化?

Java架构师迁哥

《操作系统概述》-第六版

计算机与AI

操作系统

可参考才是有价值的,架构设计的技改之路从来都不容易

互联网应用架构

架构设计

Maven、Ant、Rake:JRuby 1.5加强配置管理_Java_Paul Blair_InfoQ精选文章