我的同事指出了维护我们的文物的一个缺陷(对Ivy来说仍然有点新鲜):
发布版本被标记为“集成”,这意味着它正在重新检查每个版本的新版本,即使缓存了依赖项,也会降低构建速度。
这对我来说没有多大意义,因为我认为,在决定要提供的版本之前,Ivy仍然需要检查回购中的内容。所以,我决定研究一下,以确切地了解用不同的状态值标记库的影响。 但是,我在文档中找不到太多内容,或者在网上找不到。我错过了什么? 有人可以对此有所了解吗?
谢谢
答案 0 :(得分:1)
状态只是一个字符串,可以为常春藤定义。它们本身并不影响工件的解析。它对默认检索没有影响。它只是一件神器的标记。
修订的状态模块的状态表示模块的稳定性 可以考虑修改。它可用于巩固状态 模块的所有依赖关系,以防止使用 集成修订版本中的依赖项。
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!