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'. |
3) 示例
< taskdef resource ="emma_ant.properties" classpathref ="emma.classpath" />
解析版本为2.0.4217的emma 模块,用对应的制品构造一个ant路径,然后使用这个路径定义emma任务。