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的任务被调用

* 组合和模块没有设置

从ivy1.4版本起,有两种方法可以运行resolve :使用ivy文件,或者使用inline模式。当你使用ivy文件调用resolve时,默认会为后 面的后解析任务保持被解析的数据。当你运行 inline模式的resolve时,默认不保持数据。你可以通过设置keep属性为你想要的值来覆盖 这个行为。

如果你想重用在另外一个构建(或者说不是当前这个)中通过调用resolve而得到的数据,则你不得不设置组织和模块属性。这个仅在从 你的最后一次 resolve调用后缓存没有被清理的情况下才能有效工作。在inline调用下这个不能工作,inline必须在同一个构建中完成。

2) 属性

下面列出的属性大部分只在resove自动触发时可用.

属性 描述 必要
conf 用于retriev的逗号分隔的配置列表,或者是 “*”

从2.0起可以使用 '*(public)' or '*(private)'.注意当 inline为true时 '*'做'*(public)'理解。

不。默认是最后一次resolve调用使用的设置,或者没有显示调用resolve时是'*'
inline true使用inline模式,false解析ivy文件(从1.4版本起) 不,默认是false
organisation 要获取的模块的组织。通常不需要设置,因为默认为最后解析的组织,除了inline模式需要之外。  在inline模式下是,其他不是,默认为最后解析的模块的组织。
module 要获取的模块的名称。通常不需要设置,因为默认为最后解析的组织,除了inline模式需要之外。 在inline模式下是,其他不是,默认为最后解析的模块的名称。
revision 要获取的模块的版本约束,仅在inline模式下使用。从1.4版本起。 不,默认为latest.integration
branch 在inline模式下要解析的模块的分支(从2.1版本起) 在inline模式下默认没有分支,标准模式下无关。
transitive true递归解析依赖,false不递归,从1.4起 不,默认为true
resolveMode 当自动解析被触发时使用的resolve mode (从2.1版本起) 不,默认为使用在设置中设置的resolve mode.
keep true to keep the results of the automatic resolve in memory, false to discard them. When this is false, the standard ivy properties won't be set and other postresolve-tasks (like retrieve and cachepath) won't be able to resuse the results of this resolve!

true在内存中保持自动解析的结果,false抛弃结果。当这个是false时,标准ivy属性不会被 设置,而其他postresolve-tasks(如retrieve 和 cachepath)将不能重用这次解析的结果!

不,inline模式默认是false,而其他情况默认为true
haltonfailure true当ivy失败时挂起构建,false继续 不,默认为true
validate true强制使用ivy.xsd验证ivy文件,false强制不验证。 不,默认为ivy默认值(在设置中间中配置)
refresh true强制ivy在这次解析过程中解析动态版本,false使用缓存的解析好的版本。从2.1起 不,默认为false
file 要解析的文件,如果解析式必要的,从2.0起 不,默认为前面解析的ivy文件或者默认为${ivy.dep.file}
settingsRef A reference to the ivy settings that must be used by this task (since 2.0)

必须被这个任务使用的ivy设 置的引用。(从2.0起)

不,默认使用'ivy.instance'
resolveId The id which was used for a previous resolve, or the resolveId if a new resolve is performed (since 2.0)

之前解析使用过的id,或者resolveId如果一个新的解析被执行(从2.0起)

不,默认为'[org]-[module]'.
log 在解析过程中使用的日志设置(从2.0起)

可用选项是:

default

默认日志设置,所以通 常的消息都被输出到控制台

download-only

除下载消息外其他所以通常消息都失效。所有东西都在缓存的解析将 不输入任何消息。

quiet

所有消息失效,除非发生错误,否则整个解析过程保持安静。

不,默认为 'default'.

3) 示例

<ivy:cachepath organisation="emma" module="emma" revision="2.0.4217" inline="true" conf="ant"  pathid="emma.classpath"/>
<taskdef resource="emma_ant.properties" classpathref="emma.classpath" />

解析版本为2.0.4217的emma 模块,用对应的制品构造一个ant路径,然后使用这个路径定义emma任务。

时间: 2024-08-31 19:03:45

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

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

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

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

buildlist任务用于获取按照ivy依赖信息从小到大排序的文件(通常是build.xml文件) 列表,或者相反(从1.2之后) 这个任务在结合subant构建相关项目集合时特别有效, 可以确保依赖在其他依赖它的模块之前被构建. 当你要排序的模块的ivy.xml不包含修订版本号,在依赖上定义的rev属性将不被使用. 当你要排序的模块的ivy.xml包含修订版本号,修订版本号将被使用.如果修订版本号和依赖描述不匹配,将会记录警告日志而模块被 认为是不同的模块. 从1.3版本起,root属性也可以

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

1) ant任务 使用ivy的主要和最频繁的方式是在ant构建文件中.不过,ivy也可以作为独立的应用被调用. 如果你使用ant版本1.6.0 或更高,你仅仅需要添加ivy的命名空间到你的项目中(你的project标签的属性) xmlns:ivy="antlib:org.apache.ivy.ant" 这样你就可以调用ivy任务了. 如果你想让你的构建处理ivy.jar,不管是在ant的lib目录还是在本地的lib目录.你可以类似这样使用任务定义 <path id="i

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

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

ivy中文参考文档(20)-ant任务(8)-cachefileset

1) cachefileset 为配置构建一个有ivy缓存中的制品组成的ant fileset 从1.2版本起). 这是一个后解析任务,有所有后解析任务共有的所有行为和属性.注意这个任务不依赖retrieve,因为构建的fileset是由ivy缓存中的 制品直接构成的. 请尽量采用retrieve + 标准ant 路径创造,这使得你的构建不那么依赖ivy(一旦制品被正确的获得,ivy不再需要). 构建fileset在ant中通过使用给定的id注册,从而可以像其他任务ant fileset一样通过

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

1) cachepath 为解析过的模块配置构建一个由在ivy 缓存(或者取决于useOrigin 设置的原始位置)中的制品组成的ant path. 这是一个后解析任务,有所有后解析任务共有的所有行为和属性. 如果你想让你的构建更少的依赖ivy,你可以考虑使用retrieve 任务.一旦制品被正确的获得,你可以使用标准ant path,这使得ivy 不再必不可少. 构建path在ant中通过使用给定的id注册,从而可以像其他任务ant 路径一样通过使用refid来使用. 2) 属性 属性 描述

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

1) deliver 交付当前模块的解析好的描述符,而且可能执行依赖的递归交付. 这个任务主要做两个事情: 1.生成一个解析好的ivy 文件 这个任务生成一个当前模块的解析好的描述符,基于最后一次解析.解析好的ivy文件包含交付的模块的已更新信息,例如修订版本和 状态. 此外,所有被包含的配置的文件将包含在ivy文件中,而且变量被他们的值替代. 最终,在解析好的ivy文件中,动态修订版本被在解析过程中找到的静态的修订版本替换,因此这些ivy文件后面可以安全的使用来获得 相同的依赖(前提条件是修订

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

1) 解析 解析任务实际解析在ivy文件中描述的依赖,并将解析后的依赖放置到ivy缓存中. 如果在resolve任务前没有调用configure任务,则将使用默认的configuration (等同于不带参数的调用configure). 在这个任务调用之后,在ant中有四个属性被设置: ivy.organisation 设置为在用于解析的ivy文件中找到的组织名 ivy.module 设置为在用于解析的ivy文件中找到的模块名 ivy.revision 设置为在用于解析的ivy文件中找到的修订版

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

1) configure configure任务用于通过xml设置文件来配置ivy. 查阅设置文件来获取设置文件自身的细节. 从2.0起可以通过sttings声明来配置ivy.和这个任务的不同之处在于当使用settings声明时,ivy的配置在settings第一次需要时(例 如当你做一次resolve)完成,而configure任务立即执行一次配置,这样如果有某些错误发生可以容易看到. 2) 属性 属性 描述 必要 settingsId The settings id useable in t