写点什么

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

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

关注

评论

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

【CodeBuddy】一句话开发一个完整项目之:响应式栅格布局生成器

jimaks

CodeBuddy首席试玩官

常用的CTR领域经典机器模型介绍

永荣带你玩转昇腾

PyTorch 实现FCN网络用于图像语义分割

永荣带你玩转昇腾

以利他共赢实现和合共生珠海万达商管东区品牌峰会圆满举办

新消费日报

Cursor要付费,何不试试Trae | Trae 带你做游戏

六月的雨在InfoQ

MCP Trae MCP Server AI 编程

【CodeBuddy】挑战一句话开发一个完整项目之:设计稿智能配色引擎

jimaks

CodeBuddy首席试玩官

上线 3 天破 500 星,TEN VAD 与 Turn Detection 让 Voice Agent 对话更拟人丨社区来稿

RTE开发者社区

模型并行之Embedding表

永荣带你玩转昇腾

楼宇大堂数字LED显示屏定制指南

Dylan

商业 LED显示屏 全彩LED显示屏 户外LED显示屏 led显示屏厂家

学习如何构建高效AI Agent

Bruce Talk

AI

CodeBuddy助力数学教学:数学老师直呼内行!

jimaks

CodeBuddy首席试玩官

🌟【一句话生成个人主页】CodeBuddy Craft让设计师瞳孔地震!

jimaks

CodeBuddy首席试玩官

【CodeBuddy】挑战一句话开发一个完整项目之:React表单验证系统

jimaks

CodeBuddy首席试玩官

鸿蒙开发实现图片上传(上传用户头像)

星河特战队员

社交 DevEco Studio 鸿蒙开发 harmoyos

长连接网关技术专题(十二):大模型时代多模型AI网关的架构设计与实现

JackJiang

网络编程 IM 即时通讯IM

基于Pytorch 在昇腾上实现GCN图神经网络

永荣带你玩转昇腾

【CodeBuddy】三分钟开发一个实用小功能之:CSS代码瘦身专家

jimaks

CodeBuddy首席试玩官

微软 Azure 发布 Voice Live API,自带音频处理可自选模型;空间语音翻译:保持环境中说话人方向和声音特征丨日报

RTE开发者社区

推荐系统网络序言

永荣带你玩转昇腾

《算法导论(第4版)》阅读笔记:p127-p133

codists

算法

PID参数自整定终极指南:基于继电反馈的智能调节算法详解

芯动大师

PID 自整定

昇腾910-PyTorch 实现 Vggnet图像分类

永荣带你玩转昇腾

AppAgentx 开源AI手机操控使用分享

溪抱鱼

android AI 自动化测试

全面解析 Coco AI,一款开源、免费的智能搜索与知识库工具

极限实验室

直播 CocoAI

Centos或Linux编写一键式Shell脚本删除用户、组指导手册

刘大猫

人工智能 Linux centos Shell shell脚本

使用手势自定义截取视频时间组件

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT 实践分享

CodeBuddy Craft智能体测评|对话式编程太香了!🚀

jimaks

CodeBuddy首席试玩官

《腾讯Codebuddy+AI让古诗文教学开挂!语文老师3步搞定智能备课系统》

jimaks

CodeBuddy首席试玩官

🌟 CodeBuddy Craft智能体实战:开发一个智能语法检查工具

jimaks

CodeBuddy首席试玩官

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