我正在使用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:无法解析依赖项:解析失败-有关详细信息,请参阅输出
如果你真的需要清除你的缓存每次安德斯的回答是要走的路。
我宁愿为所有外部库(或不会有太大变化的库)保留一个缓存,以及一个一直被清除的基于项目的缓存。
对于很少改变的缓存,锁策略将是有用的,以处理多线程访问。
锁定策略应该有帮助。如果只使用ivy命令来处理缓存,这将确保只有一个进程“在其中活动”。
您通常可以在ivysettings.xml
中启用它。
<lock-strategies><artifact-lock/></lock-strategies>
或者在缓存级别。