写点什么

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

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

关注

评论

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

如何完成日千万级别以上的订单对账(二)

谙忆

魔晶面膜

飞亚科技

MOOM集团模式

飞亚科技

颠覆微服务认知:深入思考微服务的七个主流观点

xcbeyond

微服务 微服务架构 4月日更

Spark测试用例生成apache iceberg结果

聚变

大数据 iceberg

cat监控http请求-CatFilter

青乡之b

监控 cat

《中寰卫星导航项目管理部负责人卜钢:智能网联行业的问题与前景》(采访提纲):

谙忆

java基础集合之HashMap

false℃

干货 | Redis进阶笔记

ninetyhe

redis 缓存 原理分析

聪明人的训练(十三)

Changing Lin

4月日更

大数据文件浏览器

聚变

活久见,58同城居然也有这么牛的Java内部教程

Java架构师迁哥

湖南省电信网络崩溃 一小时损失上亿,网友:还以为手机欠费了?

Machine Gun

黑客 网络安全 信息安全 网络 电信

重读《重构2》- 内联函数

顿晓

重构 4月日更

SpringBoot项目中的日志不会选型?带你认识主流日志框架,教你轻松切换日志框架

攻城狮Chova

slf4j 日志框架 4月日更

Scrum Patterns:小团队(译)

Bruce Talk

敏捷开发 译文 Agile Scrum Patterns

不确定的海浪中,更需要数字化转型的定海神针

脑极体

就像TM做梦一样:金三突击面试,成功斩获阿里、美团等多个大厂offer

互联网架构师小马

Java 编程 程序员 面试 软件开发

金三拿到5个offer,全靠这份Alibaba内部Java面试指南

云流

Java 编程 程序员 架构 面试

IPFS项目是不是真的?IPFS国家认可吗?

投资矿机v:IPFS1234

IPFS国家认可吗 IPFS项目是不是真的

缓存系统设计精要

比伯

Java 互联网 面试 程序人生 技术宅

消息队列(如 Kafka 等)的应用场景

五分钟学大数据

kafka 消息队列 4月日更

一文搞懂MySQL体系架构!!

冰河

MySQL 数据库 程序员 系统架构 数据存储

IPFS矿机1T每天能挖多少?IPFS矿机多少钱一台?

投资矿机v:IPFS1234

IPFS矿机多少钱一台 IPFS矿机1T每天能挖多少

如何完成日千万级别以上的订单对账(一)

谙忆

低代码之所以能火,离不开这些原因!

优秀

低代码

阿里P9纯手打的JDK文档太吊了,微软都开始学习了!

Java架构师迁哥

[TcaplusDB知识库]TcaplusDB的高可用性和数据安全性介绍

TcaplusDB

数据库 nosql 数据 TcaplusDB

混战的低代码江湖,如何区分「李逵」和「李鬼」?

ToB行业头条

线上500万数据查询时间在37秒,作者将问题解决了,我却看到了更大的坑

谙忆

yyds!用飞桨玩明日方舟

百度大脑

百度 飞桨

Ivy 2.0作为Apache项目发布-InfoQ