BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Ivy 2.0作为Apache项目发布

| 作者 Alexander Olaru 关注 0 他的粉丝 ,译者 王丽娟 关注 0 他的粉丝 发布于 2008年1月21日. 估计阅读时间: 4 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

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企业应用的开发,关注软件架构技术。职业目标是成长为一名优秀的架构师。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

王丽娟(Ivy Wang) Ivy 2.0? by Lee Vincent

嘿嘿,这位mm参与了开发么?

我喜欢和关注 Ivy by xiong boon

Ivy 对于依赖管理的能力是值得大家关注的。Maven2虽然在项目管理上有了大的提高,不过在易用性方面实在是不敢恭维。此外,Maven 仓库中良莠不齐,也阻碍推广应用。这也是Ant更为大家接受的原因,因此Ant+Ivy是解决构建依赖的推荐方案。
本人则关注Ivy在OSGi应用构建中是否能够发挥出效率,期望有共识的朋友一起讨论。
破门 brokendoor@hotmail.com

Re: 王丽娟(Ivy Wang) Ivy 2.0? by Lai Jason

嘿嘿,Ivy有Ivy情结啊:)

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT