写点什么

Ivy 2.0 作为 Apache 项目发布

2008 年 1 月 20 日

Ivy 发布了 2.0 beta 版,它是一个管理(记录、跟踪、解析和报告)项目依赖的工具,可与 Apache Ant 紧密集成。这是 Ivy 第一次作为 Apache 项目发布,它增强了与 Maven 2 仓库的兼容性,改进了并发支持,并做了少量重大的修改。根据发版说明,Ivy 具有如下特性:

  • 灵活性和可配置性——Ivy 是过程无关的,并且不依赖于任何方法论或结构。
  • 与 Ant 紧密集成——Ivy 除了可作为单独的工具使用之外,也提供了许多 Ant 任务,涵盖依赖解析、依赖报告和发布。

版本 2.0 修复了大量 Bug,同步更新了指南,除此之外,该版本也做了一些重要的修改:

  • 配置(configuration)被设置(settings)取代——为了避免混淆,从配置(用于模块配置)中分离出了设置(用于定制 Ivy)。
  • 设置加载检查——废弃了配置任务,用设置数据类型来取代,设置数据类型允许在单个 Ant build 脚本中使用多个设置。
  • ivyrep 不再是缺省的公共解析器——它已由 Maven 2 仓库 ibiblio 替代。
  • 相对路径解析——如果包含配置文件时用了相对路径,依赖解析可能会受影响,因为 2.0 的路径解析是相对于该配置所属的 Ivy 文件,而非当前目录。

只要不使用自定义插件,Ivy 2.0 就是向前兼容的。由于先前的版本是作为 Jayasoft 项目发布的,所以新的 2.0 版本在包名上有所改变,将 fr.jayasoft.Ivy 改成了 org.apache.ivy。

尽管 Ivy 增大了与 Maven 2 仓库之间的集成,但是项目领导者详细说明了两个项目之间的主要区别,以及 Ivy 怎样对 Maven 2 中的依赖管理特性提供一种可用的替代。下面是几个重点:

Maven 2 和 Ivy 常被放在一起对比,但实际上两者是不同类型的工具。Ivy 仅提供依赖管理功能,但是 Maven 2 是一个软件项目管理综合工具,能够管理构建、报告、文档,以及根据中心化的信息来管理依赖。Ant 和 Ivy 2.0 集成在一起,与 Maven 2 进行比较才比较合适。

两个工具处理冲突管理(Conflict management)的方式是不同的,冲突管理指处理传递依赖时解决冲突的能力。Ivy 允许由模块定制冲突管理器和规则,而 Maven 2 的冲突管理则基于最近的定义(也就是说,一个模块依赖于 foo 1.0,这会导致模块的所有依赖都不能使用 foo 1.1)。

Maven 2 通过一个叫阶段(scope)的概念来处理其中的依赖配置。在 Maven 2 中,一个依赖只在定义它的测试阶段或构建阶段有效。Ivy 能够创建多配置映射,这些映射可将每个配置(需构建工件的声明)与其它模块的依赖绑定在一起,以此提供了更多的定制选项。

Maven 2 关于依赖管理的文档很有限,相对于此,Ivy 的文档内容更宽泛,包含大量的例子和指南,同时包括 FAQ。有些企业不能使用公共仓库,并在基于 Ant 的构建系统中有大量投资,对于这样的企业来说,Ivy 支持企业仓库的创建、与 Ant 紧密集成,这些附加的特征都使 Ivy 成为能替代 Maven 2 的依赖管理工具。

查看英文原文 Ivy 2.0: Released As An Apache Project - - - - - -

译者简介: 王丽娟(Ivy Wang),一个快乐的程序员,持续从事 Java EE 中间件和 Java EE 企业应用的开发,关注软件架构技术。职业目标是成长为一名优秀的架构师。

2008 年 1 月 20 日 19:11897
用户头像

发布了 151 篇内容, 共 52.3 次阅读, 收获喜欢 10 次。

关注

评论

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

Week 05- 作业一:一致性 hash 算法

dean

极客大学架构师训练营

Uniapp使用GoEasy实现websocket实时通讯

GoEasy消息推送

uni-app websocket 即时通讯

这份架构PDF如何得到百度、洋码头、饿了么CTO等大咖联袂推荐?

小新

Java 架构 面试 队列

用一致性Hash算法的实现负载均衡(Kotlin)

Acker飏

极客大学架构师训练营 一致性Hash算法

第五周作业-一致性hash算法实现

吴建中

极客大学架构师训练营

区块链技术打通医疗应用场景

CECBC区块链专委会

行业资讯 生产 区块链技术 生活服务

架构师训练营学习总结——缓存与消息队列【第五周】

王海

极客大学架构师训练营

首次揭秘!​春晚活动下快手实时链路保障实践

Apache Flink

Apache flink 架构 实时计算

第五周总结

武鹏

为你的 SpringBoot 服务生成或推送各平台的部署包

华宇法律科技

Docker k8s springboot

公司制的黄昏:区块链重构商业世界

CECBC区块链专委会

区块链思维 裂变 契约 激励

week5 学习总结

Geek_2e7dd7

阿里内推面试,挂在了一道简单的问题上…

小新

Java 阿里巴巴 程序员 架构 面试

架构师训练营 - 第 5 周学习总结

红了哟

Week5 一致性hash算法

TiK

你都如何回忆我,带着笑或是很沉默

小天同学

回忆 高考 青春

程序员是这样解读《隐秘的角落》

陈东泽 EuryChen

学习 程序员 隐秘的角落

打造Redis分布式环境下的银弹?我觉得Redisson比Redlock更胜一筹

码农月半

Java redis redis高可用 Redis项目

架构师训练营 - 第 5 周命题作业

红了哟

Week5 学习总结

wyzwlj

极客大学架构师训练营

架构师训练营 - 第五周命题作业

牛牛

极客大学架构师训练营 命题作业 一致性Hash算法

产业区块链发展迎来爆发期

CECBC区块链专委会

产业区块链 系统稳定性 应用安全性 信任的机器

老龄化时代的人机共生:京东数科以AI机器人推动产业增长

脑极体

week5

Geek_2e7dd7

week5-总结 技术选型

a晖

最右JS2Flutter框架——开篇(一)

刘剑

flutter 前端 探索与实践

搞懂Spring事务失效的8大原因,轻轻松松面试过关

码哥小胖

Java spring Spring Boot

架构师训练营 - 第五周 - 学习总结

韩挺

架构师训练营 - 第五周 - 作业

韩挺

码农必备SQL高性能优化指南!35+条优化建议立马get

码哥小胖

MySQL SQL语法 sql查询 sql

开发人员应当避免的代价高昂的职业错误

小隐乐乐

职业规划 职业素养 架构师

InfoQ 极客传媒开发者生态共创计划线上发布会

InfoQ 极客传媒开发者生态共创计划线上发布会

Ivy 2.0作为Apache项目发布-InfoQ