ivy中文参考文档(3)-主要概念(上)

英文原文:http://ant.apache.org/ivy/history/2.1.0-rc1/concept.html

因内容太长而拆分,下面是第一部分:

一. 依赖解析器

依赖解析器是ivy中使用的可插入是的类:

* 发现ivy文件中的依赖

* 下载依赖的制品

制品下载的概念很大:制品可以在网站上,或者在你机器上的本地文件系统上。下载是从仓库取文件放到ivy缓存的行为。

而且,解 析器的职责是找到ivy文件并下载制品,这有助于实现不同的解析策略。

如你所见,依赖解析器可以被认为是负责描述仓库的类。

如 果你想知道在ivy中有哪些解析器可用,你可以转到对应的配置章节。

二. 模块配置说明

模块配置在术语页面已经被描述,是用来使用或者构建模块的方法。配置是ivy的重要部分,需要更多的说明。

当你定义一种方式来 使用或者构建模块时,你可以在这个配置中定义哪些制品被这个模块发布,并且你还可以在这个配置中定义哪些依赖是需要的。

此外,因为ivy中的依赖是以模块而不是制品来表述,因此能够在你定义的模块中定义依赖的配置是必须的就显得很重要了。这就是配 置映射。

如果你仅仅使用单一的模块并且不想操心配置,你可以不理会他们。它们依然存在,导致ivy无法在没有配置的情况下工作。但是大多 数时候,如果你不定义任何东西,ivy会假设你的模块的制品在所有的配置中发行,并且在所有的配置中所有的依赖配置都是必须的。并且 在单一模块的情况下工作正常。但是无论何时你想在一个模块内部分隔事物,或者更多的控制发行的东西并通过依赖解析,配置会满足你 的大多数要求。

更多如何定义模块配置,定义制品用哪个配置发布和定义配置映射的细节,请参考ivy文档。配置教程是一个可以教会你学到更多关于 这个概念的东西的好地方。

三. 变量

在配置的过程中,ivy容许定义ivy变量。ivy变量可以被视为类似ant属性,而且使用方式很相似。特别是,在配置文件中使用属性标签 来装载包含ivy变量和值的属性文件。

但是,ant属性和ivy变量之间的最大差别在于ivy变量可以被覆盖,然而ant属性不可以,而且它 们在不同的环境下定义。

实际上当配置完成时,所有ant属性都被导入到ivy变量(如果是从ant中调用ivy)。这意味着如果你在调用配 置之后定义一个ant属性,它讲无法作为一个ivy变量来访问。另一方面,ivy变量不能导出到ant,所有如果你在ivy中定义ivy变量,不要 试图作为ant属性来使用它们。

为了使用ivy变量,你必须遵循和ant属性相同的语法:

${variablename}

这个的variablename是变量名

最后,同样重要的是知道变量代入的时间点。带入是尽可能快的。这意味着当ivy遇到一个变量引用,如果这个变量被定义了,它会试 图代入。结果是,这个变量在之后的任何改动都不会影响这个已经代入的值。

此外,在ant环境中,一串变量将通过ant属性文件装载机 制被默认设值(实际上他们被作为ant属性第一次装载,然后被导入为ivy变量,见ant任务),甚至在ant属性自身也将在装载时立即代入 ,有效地使得仅仅通过ivysettings.properties文件来覆盖某些变量变得没有可能。某些变量因此只能通过ant属性来重载。

此外,同 样非常重要的是理解ivy变量和ivy模式标记(pattern tokens)之间的不同。请翻阅模式的章节来理解什么是模式标记。

时间: 2024-11-03 13:51:58

ivy中文参考文档(3)-主要概念(上)的相关文章

ivy中文参考文档(4)-主要概念(下)

ivy中引入了一些自己的概念,了解并理会这些概念对ivy的学习使用是有帮助的.这里翻译一下官网的介绍ivy主要概念的文章,原文 在此:http://ant.apache.org/ivy/history/2.1.0-rc1/concept.html 因内容太长而拆分,下面是第二部分: 六. 冲突管理器 冲突管理器可以在冲突的模块修订本列表中选择需要保留的修订本. 如果修订本对应相同的模块,举例说相同的组织/模块名对,那么称为冲突的修订本列表. 可用的冲突管理器列表在可以冲突管理器页面可以得到. 想

ivy中文参考文档(6)-最佳实践(上)

这里有一些我们从我们的经验和一些客户的顾问工作中收集到的建议和最佳实践. 1) 为所有的模块添加模块描述符 在ivy的世界种,模块描述符是ivy文件的一种,基本上是简单的xml文件,用来描述模块生产什么作为制品和它的依赖. 为你的开发涉及到的所有模块编写或者下载模块描述符是一个好习惯,甚至是为你的第三方依赖,哪怕他们不提供他们自己的模块描述 符. 开始这将看上去像是一个额外的工作,并且需要时间.但是当你拥有多个模块同时使用相同的第三方类库,你仅仅需要在你的ivy文件 中添加一行就可以得到这个类库

ivy中文参考文档(1)-目录

欢迎使用ivy参考文档,如果你完全不了解ivy,请在深入阅读这份参考文档之前,简单了解一下它的特性,FAQ和教程. 参考概要: 这份文档被分解为以下几个部分 一. 介绍 1. 术语 (English / 中文) 这个部分介绍一些在ivy文档中到处使用的词语,例如组织,模块,配置,设置 2. 主要概念 (English / 中文 上/下) 这个部分介绍ivy中使用的主要概念:依赖解析器,变量,表达式,另外还有还对ivy的主要 概念---模块配置做了良好介绍. 3. ivy如何工作 (English

ivy中文参考文档(10)-ivy文件

1) ivy文件 ivy的使用完全是基于以"ivy文件"著称的模块描述符.ivy文件是xml文件,通常被称为ivy.xml,包含模块依赖的描述,它发布的制品 和它的配置. 这里有一个最简单的ivy文件: <ivy-module version="2.0"> <info organisation="myorg" module="mymodule" /> </ivy-module> 如果你想知道

ivy中文参考文档(5)-ivy如何工作

前面已经介绍了ivy主要的术语和概念,现在是时候说明ivy如何工作的了. 不同位置下模块的通常周期 文档(5)-ivy如何工作-spring4 中文参考文档"> 更多细节请查考ant任务. 一. 配置 ivy需要配置以便能够解析依赖.这个配置通常是通过配置文件来完成的,配置文件定义了一系列的依赖解析器.每个解析器能够发现 ivy文件和/或制品,提供简单信息诸如组织,模块,修订版本,制品名字,制品类型和制品扩展名. 配置通常负责支出哪个解析器应该用于解析哪个模块.这个配置仅仅取决于你的环境,

ivy中文参考文档(17)-ant任务(5)-publish

1) publish 发行当前模块的制品和已解析的描述符(已交付的ivy文件). 这个任务的目的是发行当前模块描述符和它的声明的发行制品到仓库中. 所有制品必须在这个任务调用前创建.它不会自己创建制品,而是只期望能在制品正则表达式之处的地方找到他们. 目标仓库通过在当前ivy设置中声明的解析器的名字来给出.查阅设置文件来获取解析器支持制品发行的细节. 同时也发行已交付的ivy文件(除非你不想),并且甚至会deliver它,如果ivy文件没有在上一次delever调用时交付或者forcedeliv

ivy中文参考文档(9)-设置文件

1) 设置文件 为了如您所想的工作,ivy有时需要一些设置.实际上,ivy可以在完全没有任何特殊设置的情况下工作,查阅默认设置文档来获取相关 的更详尽的信息.但是ivy有能力在完全不同的上下文下工作.你只需要正确的配置它. 设置通过xml文件来指定,通常命名为called ivysettings.xml.为了在ant中配置ivy,你只需要用你的设置文件的路径来使用配置数 据类型. 这里有一个设置文件的例子: <ivysettings> <properties file="${i

ivy中文参考文档(7)-最佳实践(下)

5) 处理集成版本 当工作在一个团队中或者多个模块时,你需要依赖中间的没有完成的模块版本.这些版本我们称之为集成版本,因为他们主要的目标就 是和其他模块集成来构成或者测试一个运用或者框架. 如果你在模块开发过程中欧那个遵循持续集成的规范,这些集成版本可以被持续集成服务器非常频繁的产生. 因此,如何处理这些可能数量繁多的集成版本呢? 主要有两种方法可以处理它们,ivy目前都支持: 1. 使用命名约定如一个特殊的后缀 这个主意非常简单,每次你发布你的模块的一个新的集成你使用相同的名字给这个版本(例如

ivy中文参考文档(21)-ant任务(9)-post resolve tasks

1) post resolve tasks 在ivy中有几个任务被认为是后解析任务(post resolve task),并相应地共享公用行为和设置. 这些任务是: * retrieve * cachefileset * cachepath * artifactproperty (since 2.0) * artifactreport (since 2.0) 所有这些任务都将自动触发resolve,如果: * 在当前构建中没有任何一个keep属性设置为true的任务被调用 * 组合和模块没有设置