ivy教程(10)-架设仓库(2)-基础仓库复制

在这个步骤中我们使用install任务来从maven2 仓库安装模块到一个基于文件系统的仓库。我们首先安装一个不带依赖的模块,然后安装一个带有依赖的模块。 1) 基础: 使用ivysettings.xml文件 这里我们使用的ivy设置文件非常简单。它定义两个解析器,libraries 和 my-repository. 第一个作为源使用,第二个作为目的地。在典型的安装中第二个仓库将使用包含设置来配置 ...
by skydream 2011-05-26 浏览 (2313) 回复 (0) 群组: ivy

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

欢迎使用ivy参考文档,如果你完全不了解ivy,请在深入阅读这份参考文档之前,简单了解一下它的特性,FAQ和教程。 参考概要: 这份文档被分解为以下几个部分 一. 介绍 1. 术语 (English / 中文 ) 这个部分介绍一些在ivy文档中到处使用的词语,例如组织,模块,配置,设置 2. 主要概念 (English / 中文 上 /下 ) 这个部分介绍ivy中使用的主要概念:依赖解析器,变量, ...
by skydream 2011-05-26 浏览 (5686) 回复 (1) 群组: ivy

ivy中文参考文档(11)-ant任务

1) ant任务 使用ivy的主要和最频繁的方式是在ant构建文件中。不过,ivy也可以作为独立的应用被调用。 如果你使用ant版本1.6.0 或更高,你仅仅需要添加ivy的命名空间到你的项目中(你的project标签的属性) xmlns:ivy="antlib:org.apache.ivy.ant" 这样你就可以调用ivy任务了。 如果你想让你的构建处理ivy.jar, ...
by skydream 2011-05-26 浏览 (5701) 回复 (0) 群组: ivy

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 ...
by skydream 2011-05-26 浏览 (1452) 回复 (0) 群组: ivy

ivy教程(3)-调整默认设置

ivy绑定一些默认设置,这使得在通常环境下使用ivy很容易。这个教程,接近于参考文档,解释这些默认设置是什么和他们怎样调整来满足你的需要。 为了完整的理解设置的概念和你可以用它们做什么,我们建议阅读其他和设置相关的教程(如Multiple Resolvers 和 Dual Resolver )或者设置文件 的参考文档。 1) 概念 默认设置主要是3种仓库组成: * local / 私有 用户私有的 ...
by skydream 2011-05-26 浏览 (9217) 回复 (3) 群组: ivy

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

六. 冲突管理器 冲突管理器可以在冲突的模块修订本列表中选择需要保留的修订本。 如果修订本对应相同的模块,举例说相同的组织/模块名对,那么称为冲突的修订本列表。 可用的冲突管理器列表在可以冲突管理器页面可以得到。 想得到更多如果配置冲突管理器的细节,请看ivy文件参考的冲突章节。 七. Pattern matcher 模式匹配 从1.3之后在很多地方ivy使用模式来匹配一系列对象。例如,当通过使用 ...
by skydream 2011-05-26 浏览 (2527) 回复 (0) 群组: ivy

ivy中文参考文档(14)-ant任务(2)-resolve

1) 解析 解析任务实际解析在ivy文件中描述的依赖,并将解析后的依赖放置到ivy缓存中。 如果在resolve任务前没有调用configure任务,则将使用默认的configuration (等同于不带参数的调用configure). 在这个任务调用之后,在ant中有四个属性被设置: ivy.organisation 设置为在用于解析的ivy文件中找到的组织名 ivy.module 设置为在用于 ...
by skydream 2011-05-26 浏览 (2407) 回复 (0) 群组: ivy

ivy教程(6)-项目依赖

这个示例将举例说明在两个项目之间的依赖。 depender项目声明它使用dependee 项目。我们将阐明两个事情: * 被独立的项目声明的公共类库将被依赖的项目自动获取 * depender项目将获取dependee项目的"最新"版本 1) 使用到的项目 1. dependee dependee项目非常简单。它依赖apache类库commons-lang并只包含一个类: sta ...
by skydream 2011-05-26 浏览 (4041) 回复 (0) 群组: ivy

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

5) 处理集成版本 当工作在一个团队中或者多个模块时,你需要依赖中间的没有完成的模块版本。这些版本我们称之为集成版本,因为他们主要的目标就是和其他模块集成来构成或者测试一个运用或者框架。 如果你在模块开发过程中欧那个遵循持续集成的规范,这些集成版本可以被持续集成服务器非常频繁的产生。 因此,如何处理这些可能数量繁多的集成版本呢? 主要有两种方法可以处理它们,ivy目前都支持: 1. 使用命名约定如一 ...
by skydream 2011-05-26 浏览 (2002) 回复 (0) 群组: ivy

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

1) publish 发行当前模块的制品和已解析的描述符(已交付的ivy文件)。 这个任务的目的是发行当前模块描述符和它的声明的发行制品到仓库中。 所有制品必须在这个任务调用前创建。它不会自己创建制品,而是只期望能在制品正则表达式之处的地方找到他们。 目标仓库通过在当前ivy设置中声明的解析器的名字来给出。查阅设置文件来获取解析器支持制品发行的细节。 同时也发行已交付的ivy文件(除非你不想),并且 ...
by skydream 2011-05-26 浏览 (2058) 回复 (0) 群组: ivy

ivy中文参考文档(19)-ant任务(7)-cachepath

1) cachepath 为解析过的模块配置构建一个由在ivy 缓存(或者取决于useOrigin 设置的原始位置)中的制品组成的ant path. 这是一个后解析任务,有所有后解析任务共有的所有行为和属性。 如果你想让你的构建更少的依赖ivy,你可以考虑使用retrieve 任务。一旦制品被正确的获得,你可以使用标准ant path,这使得ivy不再必不可少。 构建path在ant中通过使用给定的 ...
by skydream 2011-05-26 浏览 (1606) 回复 (0) 群组: ivy

ivy教程(9)-架设仓库(1)-介绍

install任务让你从一个仓库复制一个模块或者模块集合到另一个仓库。这对于构建和维护一个企业或者团队仓库非常有用。如果你不想你的团队中的开发人员都访问公共的maven2仓库(例如为了控制哪些模块可以在你的公司或者你的团队中使用),答复开发人员的请求来手工增加新的模块或者新的版本在某些时候变得令人厌烦。 幸运的是install任务可以在这里提供帮助: 你可以为你的用于维护目标企业仓库的仓库维护构建 ...
by skydream 2011-05-26 浏览 (3156) 回复 (0) 群组: ivy

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

1) ivy文件 ivy的使用完全是基于以"ivy文件"著称的模块描述符。ivy文件是xml文件,通常被称为ivy.xml,包含模块依赖的描述,它发布的制品和它的配置。 这里有一个最简单的ivy文件: < ivy-module version ="2.0" > < info organisation ="myorg&qu ...
by skydream 2011-05-26 浏览 (2365) 回复 (0) 群组: ivy

ivy教程(11)-架设仓库(3)-使用命名空间

现在你已经看到从一个已经存在的仓库创建你自己的仓库是如何的简单,你可能会想知道如何处理更加复杂的情况,例如当源仓库和目的地仓库不遵循相同的命名约定。 1) 通往专业仓库之路 我们将学习这个如何构建一个专业仓库的章节。什么是专业仓库?我们的观点是一个良好质量的仓库必须遵循有关项目命名的清晰的规则,并必须提供正确,可用,可配置和验证过的项目描述符。为了达到这些目标,我们认为你必须构建你自己的仓库。 在前 ...
by skydream 2011-05-26 浏览 (1650) 回复 (0) 群组: ivy

ivy中文参考文档(2)-术语

在ivy中使用了很多术语,他们的定义如下: * Organisation / 组织 * Module / 模块 * Module Descriptor / 模块描述符 * Artifact / 制品 * Type of an artifact / 制品类型 * Artifact file name extension / 制品文件扩展名 * Module Revision / 模块修订本 * Br ...
by skydream 2011-05-26 浏览 (4459) 回复 (0) 群组: ivy

ivy中文参考文档(12)-单独使用

1) 单独使用 ivy可以非常容易的作为一个单独的程序使用。你所需要的只是一个java1.4+的运行环境(JRE)! 这是如何调用它的例子: java - jar ivy.jar -? 它将实现类似这样的在线帮助: ==== settings options -settings < settingsfile > use given file for settings - ...
by skydream 2011-05-26 浏览 (1852) 回复 (0) 群组: ivy

ivy教程(1)-目录

学习的最佳方式是实践!这是ivy教程将帮助你做到的,发现一些伟大的ivy特性。 这里是非常优先的教程,它甚至不需要安装ivy,如果你已经正确安装了ant和jdk,甚至只需要花费不到30秒的时间: * 确保你已经正确安装好ant 1.6.0 或更高版本和jdk。 * 复制这个build文件到你本地文件系统上的一个空目录下(确保你将这个文件命名为build.xml) * 在这个目录下打开一个控制台, ...
by skydream 2011-05-26 浏览 (8128) 回复 (0) 群组: ivy

ivy教程(4)-多解析器

这个例子演示模块是如何被多解析器获得的。使用多解析器在很多情况下是非常有用的,这里是一些例子: * 来自发行的单独的集成构建 * 为第三方模块使用公共仓库并且为内部模块使用私有仓库 * 使用一个仓库来存储那些在无法管理的公共仓库里里面的不清晰的模块 * 使用本地仓库来暴露在一个开发人员的位置上生成的构建 在ivy中,多解析器的使用是通过一个名为解析器链的复合解析器来支持的。 在我们的例子中,我们将 ...
by skydream 2011-05-26 浏览 (3362) 回复 (1) 群组: ivy

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

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

ivy中文参考文档(15)-ant任务(3)-retrieve

1) retrieve retrieve任务复制解析好的依赖到你的文件系统的任何位置。 这是一个post resolve任务,带有所有post resolve任务共有的所有的行为和属性。 从1.4起 这个任务甚至可以根据依赖解析的结果用实际应该存在的东西来同步目标目录。这意味着如果设置sync为"true",ivy不仅将复制必要的文件,而且它还会删除那些不再需要在那里的文件。 同 ...
by skydream 2011-05-26 浏览 (2185) 回复 (0) 群组: ivy

ivy教程(7)-在多项目环境下使用ivy

在上一个教程中,你已经看到如何处理两个简单项目之间的依赖。 这个教程将引导你完成在一个更加复杂的环境下的ivy使用。这个教程的所有源文件在ivy发行包的src/example/multi-project下可以得到。 1) 上下文 这里是这个教程涉及到得项目的概况: * version 帮助通过版本列表来标识模块 * list 获取目录下的文件列表(递归地) * size 获取目录下的所有文件或者一个 ...
by skydream 2011-05-26 浏览 (3271) 回复 (0) 群组: ivy

ivy中文参考文档(8)-安装

安装ivy主要有两种方式,手工安装或者自动安装。 1) 手工安装 从这里 下载你想要的版本,在任何你想的地方解开下载的zip文件,并复制ivy的jar文件到你的ant的lib目录(ANT_HOME/lib). 如果你使用ant 1.6.0或者更高,你可以简单的到src/example/hello-ivy 目录并运行ant: 如果构建成功,你就成功的安装了ivy! 如果你使用ant1.5.1或者更高, ...
by skydream 2011-05-26 浏览 (3775) 回复 (0) 群组: ivy

ivy中文参考文档(18)-ant任务(6)-deliver

1) deliver 交付当前模块的解析好的描述符,而且可能执行依赖的递归交付。 这个任务主要做两个事情: 1. 生成一个解析好的ivy 文件 这个任务生成一个当前模块的解析好的描述符,基于最后一次解析。解析好的ivy文件包含交付的模块的已更新信息,例如修订版本和状态。 此外,所有被包含的配置的文件将包含在ivy文件中,而且变量被他们的值替代。 最终,在解析好的ivy文件中,动态修订版本被在解析过 ...
by skydream 2011-05-26 浏览 (1307) 回复 (0) 群组: ivy

ivy教程(12)-更多例子

如果你已经成功的跟随并理解了所有的教程,可能你还是需要得到更好的关于如何在现实世界中只用ivy的描述。 这里有一些有关系的链接: 1) SAnt SAnt是一个实验性的基于ant和ivy的构建系统。对于使用它,或者了解它作为一个管理你的构建的有趣的途径,是有趣的。 2) Spring Modules spring模块项目构建系统基于ant和ivy,并且非常感兴趣,对于看一下一个模块化的项目是如何 ...
by skydream 2011-05-26 浏览 (2078) 回复 (1) 群组: ivy

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

一. 依赖解析器 依赖解析器是ivy中使用的可插入是的类: * 发现ivy文件中的依赖 * 下载依赖的制品 制品下载的概念很大:制品可以在网站上,或者在你机器上的本地文件系统上。下载是从仓库取文件放到ivy缓存的行为。 而且,解析器的职责是找到ivy文件并下载制品,这有助于实现不同的解析策略。 如你所见,依赖解析器可以被认为是负责描述仓库的类。 如果你想知道在ivy中有哪些解析器可用,你可以转到对 ...
by skydream 2011-05-26 浏览 (3173) 回复 (2) 群组: ivy

ivy中文参考文档(13)-ant任务(1)-buildlist

buildlist任务用于获取按照ivy依赖信息从小到大排序的文件(通常是build.xml文件) 列表,或者相反(从1.2之后) 这个任务在结合subant构建相关项目集合时特别有效, 可以确保依赖在其他依赖它的模块之前被构建。 当你要排序的模块的ivy.xml不包含修订版本号,在依赖上定义的rev属性将不被使用。 当你要排序的模块的ivy.xml包含修订版本号,修订版本号将被使用。如果修订版 ...
by skydream 2011-05-26 浏览 (2183) 回复 (0) 群组: ivy

ivy教程(2)-快速开始

在这个例子中,我们将看到使用ivy的一个最简单的方式。不使用任何特殊设置,ivy将使用maven2 仓库来解析你在ivy文件中声明的依赖。让我们来看一眼涉及到的文件的内容。 你将在ivy发行包的src/example/hello-ivy 目录下找到这个教程的源文件。 1) ivy.xml 文件 这个文件用于描述项目对其他类库的依赖。 这里是例子 < ivy-module version ...
by skydream 2011-05-26 浏览 (11922) 回复 (0) 群组: ivy

ivy教程(5)-双重解析器

在一些情况下,会发生这样的事情:你的模块描述符(ivy文件,maven pom, ...)被放置在一个地方,而模块的制品(jars,...)在另外一个地方。 双重解析器用于满足这种类型的需求,而这个教程将展示如何使用它。 1) 项目描述 让我们看一下你的ivy发行包里面的src/example/dual目录. 它包含一个构建文件和3个目录: * settings: b包含ivy设置文件 * rep ...
by skydream 2011-05-26 浏览 (3170) 回复 (0) 群组: ivy

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

这里有一些我们从我们的经验和一些客户的顾问工作中收集到的建议和最佳实践。 1) 为所有的模块添加模块描述符 在ivy的世界种,模块描述符是ivy文件的一种,基本上是简单的xml文件,用来描述模块生产什么作为制品和它的依赖。 为你的开发涉及到的所有模块编写或者下载模块描述符是一个好习惯,甚至是为你的第三方依赖,哪怕他们不提供他们自己的模块描述符。 开始这将看上去像是一个额外的工作,并且需要时间。但是当 ...
by skydream 2011-05-26 浏览 (2266) 回复 (0) 群组: ivy

ivy中文参考文档(16)-ant任务(4)-configure

1) configure configure任务用于通过xml设置文件来配置ivy。 查阅设置文件来获取设置文件自身的细节。 从2.0起 可以通过sttings声明来配置ivy。和这个任务的不同之处在于当使用settings声明时,ivy的配置在settings第一次需要时(例如当你做一次resolve)完成,而configure任务立即执行一次配置,这样如果有某些错误发生可以容易看到。 2) 属性 ...
by skydream 2011-05-26 浏览 (1645) 回复 (0) 群组: ivy

ivy知识库热门文章

最新评论

Global site tag (gtag.js) - Google Analytics