InfoQ

新闻

Ivy 2.0作为Apache项目发布

作者 Alexander Olaru译者 王丽娟 发布于 2008年1月20日 下午7时11分

社区
Java
主题
构建系统
标签
Maven

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

3 条回复

回复

王丽娟(Ivy Wang) Ivy 2.0? 发表人 Vincent Lee 发表于 2008年1月20日 下午8时25分
Re: 王丽娟(Ivy Wang) Ivy 2.0? 发表人 Jason Lai 发表于 2008年1月20日 下午11时1分
我喜欢和关注 Ivy 发表人 boon xiong 发表于 2008年1月20日 下午9时17分
  1. 返回顶部

    王丽娟(Ivy Wang) Ivy 2.0?

    2008年1月20日 下午8时25分 发表人 Vincent Lee

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

  2. 返回顶部

    我喜欢和关注 Ivy

    2008年1月20日 下午9时17分 发表人 boon xiong

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

  3. 返回顶部

    Re: 王丽娟(Ivy Wang) Ivy 2.0?

    2008年1月20日 下午11时1分 发表人 Jason Lai

    嘿嘿,Ivy有Ivy情结啊:)

独家内容

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。

AtomServer:数据分发的发布动力(第二部分)

在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。

架构师(试刊第二期)

InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!

一种正规的性能调优方法:基于等待的调优

在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。

Java程序员ActionScript 3入门

通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。

浅谈如何创建Rails应用

本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。

Alexandru Popescu谈InfoQ.com网站架构

InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。