2

我们最近从 Ant 切换到 Buildr 来构建我们的项目。我们使用 Ivy 进行依赖管理,使用 ivy4r Buildr 扩展。我们在办公室有一个本地存储库,用作公共工件的缓存,我们还发布我们自己的工件。

现在解决问题:当我无法访问办公室存储库时,我希望能够构建我的项目。Buildr 有一个标志告诉它离线工作(-o),但 ivy4r 似乎没有考虑到这一点。有什么办法可以让 Ivy 不尝试下载工件?我已经在我的机器上的缓存中提供了它们。

4

1 回答 1

8

将缓存超时设置为永恒

您可以将缓存属性 ${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

解析任务具有属性,useCacheOnly可用于

强制 [s] 解析器只使用它们的缓存而不是它们的实际内容

例子:

<ivy:resolve file="path/to/ivy.xml" useCacheOnly="true/>
于 2011-08-08T06:55:57.023 回答