常春藤有不同的分辨率行为,具体取决于状态属性?

时间:2011-07-29 16:10:42

标签: ivy

我的同事指出了维护我们的文物的一个缺陷(对Ivy来说仍然有点新鲜):

  

发布版本被标记为“集成”,这意味着它正在重新检查每个版本的新版本,即使缓存了依赖项,也会降低构建速度。

这对我来说没有多大意义,因为我认为,在决定要提供的版本之前,Ivy仍然需要检查回购中的内容。所以,我决定研究一下,以确切地了解用不同的状态值标记库的影响。 但是,我在文档中找不到太多内容,或者在网上找不到。我错过了什么? 有人可以对此有所了解吗?

谢谢

1 个答案:

答案 0 :(得分:1)

状态只是一个字符串,可以为常春藤定义。它们本身并不影响工件的解析。它对默认检索没有影响。它只是一件神器的标记。

Status

  

修订的状态模块的状态表示模块的稳定性   可以考虑修改。它可用于巩固状态   模块的所有依赖关系,以防止使用   集成修订版本中的依赖项。

     

Ivy中默认定义了三种状态:

integration: revisions builded by a continuous build, a nightly
     

构建等等属于此类别       里程碑:向公众发布的修订但实际上没有   完成属于这一类       发布:完全测试并标记的修订版本   类

您需要 declare the dependency as changing or the resolver definition来实现您的同事提到的内容:

  

工件的变化有些人,特别是来自maven的人2   土地,喜欢使用一个特殊的修改来处理经常更新   模块。在maven 2中,这被称为SNAPSHOT版本,有些人认为   它有助于节省磁盘空间,只保留一个版本的高   在开发过程中可以进行的中间构建数量。

     常春藤以“改变”的概念支持这种方法   更改版本就是:Ivy修订版   应该考虑到工件可能会随着时间而改变。处理   这个,您可以指定依赖项作为更改   依赖标记,或使用changingPattern和changingMatcher   解析器上的属性用于指示哪个版本或组   修订应视为变更。

     

一旦Ivy知道修订版本正在发生变化,它就会遵循这一点   避免经常检查您的存储库的原则:如果是模块   元数据没有改变,它将考虑整个模块   (包括工件)没有改变。即使模块描述符   文件已更改,它将检查模块的发布数据   看看这是否是同一版本的新出版物。然后如果   发布日期已更改,它将检查工件的最后一次   修改后的时间戳,并相应地下载它们。

     

因此,如果您想使用更改修订版,请使用发布任务   发布您的模块,它将负责更新发布   约会,一切都会好起来的。并记得设置   你的解析器上也检查了checkModified = true!