写点什么

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:571799
用户头像

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

关注

评论

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

公链开发需要多少钱?

区块链开发团队DappNetWork

智谱AI CodeGeeX代码大模型获信通院最高等级,成为国内首批通过可信AI评估的企业

技术研究院

推荐十个优秀的ASP.NET Core第三方中间件,你用过几个?

不在线第一只蜗牛

asp.net 后端 中间件

Docker与低代码跨平台开发:实现高效跨平台开发的新范式

EquatorCoco

Docker 容器 低代码

IPv6改造技术:隧道技术的原理和优缺点

国科云

从票务到游戏:Celestia 首届黑客松亮点项目盘点

TechubNews

蓝易云 - Redisson集成SpringBoot详解

百度搜索:蓝易云

Java redis spring Spring Boot redisson

低代码开发:智能财务系统开发应用

不在线第一只蜗牛

低代码

区块链钱包浏览器开发功能,价格和时间周期

区块链开发团队DappNetWork

人工智能ChatGPT的多种应用:如何更好地提问

霍格沃兹测试开发学社

Game-Fi 新贵 MetaArena 项目全解析:重塑区块链游戏生态

股市老人

德国电动汽车生产:欧洲第一,世界第二

财见

中小企业转型有招,华为云618营销季步步“智”胜

YG科技

火山引擎视频云发布赛事直播方案,延时缩短至1s

新消费日报

如何用二维码进行来访登记?这个模板帮你轻松实现!

草料二维码

草料二维码 访客登记 来访登记 访客来访二维码 来访二维码

如何用Vue3构建一个交互式3D图

秃头小帅oi

领域数据视图化和无代码设计原理

XIAOJUSURVEY

前端 低代码 搭建 schema 问卷模型

蓝易云 - Ubuntu22.04交叉编译gcc9.5 for arm

百度搜索:蓝易云

ubuntu 内存 服务器 云服务器 GCC

解决Python使用GPU

快乐非自愿限量之名

Python 开发语言

软件测试学习笔记丨Vue使用axios

测试人

Vue 软件测试 自动化测试 测试开发

利用 AI 机器学习,轻松实现化合物配比最优化解决方案

Altair RapidMiner

人工智能 机器学习 数据分析 大模型

时序数据库 IoTDB 构筑长安汽车海量车况数据管理新引擎,助力智能网联汽车发展

Apache IoTDB

实力认可|心大陆多智能体入围“2024DIIRC大模型十大典范案例”服务商!

心大陆多智能体

低代码开发应用:国企数字化转型的思考与探索

快乐非自愿限量之名

低代码 数字化

Golang 1.23: 新的 unique 包

huizhou92

QEMU X86架构机器类型之pc-i440fx-piix

Linux内核拾遗

芯片 虚拟化 qemu

2024 年 5 月区块链游戏研报:市值增长、玩家参与变迁、迷你游戏兴起

Footprint Analytics

链游

从0到100:找搭子小程序开发笔记(一)

CC同学

Go 1.23: 新包 Iter

huizhou92

Go

Game-Fi 新贵 MetaArena 项目全解析:重塑区块链游戏生态

股市老人

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