我们最近从 Ant 切换到 Buildr 来构建我们的项目。我们使用 Ivy 进行依赖管理,使用 ivy4r Buildr 扩展。我们在办公室有一个本地存储库,用作公共工件的缓存,我们还发布我们自己的工件。
现在解决问题:当我无法访问办公室存储库时,我希望能够构建我的项目。Buildr 有一个标志告诉它离线工作(-o
),但 ivy4r 似乎没有考虑到这一点。有什么办法可以让 Ivy 不尝试下载工件?我已经在我的机器上的缓存中提供了它们。
您可以将缓存属性 ${ivy.cache.ttl.default} 设置为永恒,这将设置TTL : 以便不会检查存储库是否有新修订。
您可以通过使用以下参数调用 ant 来实现此目的:
ant -Divy.cache.ttl.default=eternal build
这是来自文档:
为已解决的修订缓存定义 TTL(生存时间)规则。当 Ivy 解析动态版本约束(如 latest.integration 或版本范围)时,它可以存储给定时间的解析结果(如 latest.integration=1.5.1),称为 TTL。这意味着 Ivy 将重用此动态修订解析结果,而无需在 TTL 期间访问存储库,除非在刷新模式下运行解析。
...
TTL 持续时间也可以设置为“永恒”,在这种情况下,一旦解决,则始终使用修订版,除非在刷新模式下解决。
其他参考:
解析任务具有属性,useCacheOnly
可用于
强制 [s] 解析器只使用它们的缓存而不是它们的实际内容
例子:
<ivy:resolve file="path/to/ivy.xml" useCacheOnly="true/>