1) deliver
交付当前模块的解析好的描述符,而且可能执行依赖的递归交付。
这个任务主要做两个事情:
1.生成一个解析好的ivy 文件
这个任务生成一个当前模块的解析好的描述符,基于最后一次解析。解析好的ivy文件包含交付的模块的已更新信息,例如修订版本和 状态。
此外,所有被包含的配置的文件将包含在ivy文件中,而且变量被他们的值替代。
最终,在解析好的ivy文件中,动态修订版本被在解析过程中找到的静态的修订版本替换,因此这些ivy文件后面可以安全的使用来获得 相同的依赖(前提条件是修订版本唯一的标识一个模块,这是ivy正常使用的基础)。
从1.3起 动态修订版本被静态修订版本的替换可以被关闭,因此动态修订版本被保留在ivy文件中。这对于发行的模块描述符是完全解 析好的推荐标准是一个例外,所以请小心使用。
2.执行递归交付
仅在delever target被设置给delever任务时才这样做。
如果delever target被设置,则为每个和这个任务设置的delever状态对比没有suffisant状态的依赖,它会被调用(通过antcall)。这 意味着如果你交付一个集成修订版本,递归交付不会进行。
如果你交付一个里程碑或者发行修订版本,delever target将和每个集成依赖一起被调用。
delever target被调用时有下面的属性可用:
dependency.name
递归交付的依赖的名称
dependency.published.status
将交付的依赖的状态
dependency.published.version
将交付的依赖的修订版本
dependency.version
将交付的依赖的修订版本
dependency.published.status和dependency.published.version 要求用户通过ant输入任务给出(默认行为),或者对于整个递归交付 过程总是相同,如果下列属性被设置:
recursive.delivery.status
设置被要求交付的所有依赖的状态
recursive.delivery.version
设置被要求交付的所有依赖的版本
通常交付任务自身引发另外一个ant build(使用ant 任务),虽然这取决于你。
交付的ivy文件将使用那些在这里给出的更新它的依赖的修订版本。