1

我正在使用 Hudson 和 Ant+ivy 以及许多并行开始的工作。我的问题是我为 Ivy 使用了一个缓存文件夹,该文件夹在每个作业的 ant 任务中都被删除和更新。

当然,有几个构建失败是因为他们无法删除 ivy 文件夹,还有一些构建失败是因为找不到同时被删除的库。

构建失败

C:\dev.hudson\jobs\api\workspace\build\build.xml:100: 无法删除目录 C:\dev\tools\build\ant\extensions\ivy\cache\myapp

构建失败

C:\dev.hudson\jobs\api\workspace\build\build.xml:104:无法解析依赖项:解析失败 - 详情请参阅输出

4

1 回答 1

0

如果您真的需要每次安德斯回答时都清除缓存,那么您可以这样做。

我更愿意为所有外部库(或不会发生太大变化的库)保留一个缓存,以及一个始终被清除的基于项目的缓存。

对于很少更改的缓存,锁定策略将很有用,可以处理多线程访问。

锁定策略在这里应该有所帮助。如果您只使用 ivy 命令来处理缓存,这将确保只有一个进程“在其中处于活动状态”。

您可以在ivysettings.xml一般情况下启用它。

<lock-strategies><artifact-lock/></lock-strategies>

或者在缓存级别

于 2012-05-03T17:27:06.393 回答