Ivy,Ant,Jenkins - 在Jenkins构建中使用<ivy:cleancache>是个好主意吗?

Dav*_* W. 11 ant ivy jenkins

我们将使用Ivy和Ant,我们将让Jenkins做我们的构建.我原本以为Jenkins <ivy:cleancache/>在运行构建之前会做一个好主意.(这将是强制性"清洁"目标的一部分).

但是,我现在看到的<ivy:cleancache>不仅仅是清理内容<ivy:cachepath>,而是真正删除了整个$HOME/.ivy/cache目录.

我担心的是,如果Jenkins <ivy:cleancache>在开始之前对所有构建进行了处理,它将干扰Jenkins可能正在执行的其他构建.

<ivy:cleancache>一个好主意,特别是如果一个用户可能同时进行多个构建?

事实上,当您<ivy:cachepath pathid="compile.path"/>在多个项目中进行操作时会发生什么?这也会影响詹金斯这样的事吗?如果多个构建同时构建,Jenkins会变得困惑compile.cachepath吗?

Mar*_*nor 7

在我看来,每次构建运行常春藤cleancache任务都是过度的,并且取消了使用常春藤,智能下载第三方依赖项的主要好处之一.

如上所述,在下面的相关Maven问题中,所有缓存都会变脏,应该定期清除:

什么时候删除本地Maven存储库是安全的?

几点建议:

使用专用的Jenkins作业清除常春藤缓存

我的第一个建议是创建一个定期的Jenkins作业,在你的构建中调用以下clean-all目标:

<target name="clean-all" depends="clean">
   <ivy:cleancache/>
</target>
Run Code Online (Sandbox Code Playgroud)

这可以确保Jenkins决定何时清除缓存,并且可以将其安排在正常构建时间之外(例如,每月1日凌晨2点)

使用多个缓存隔离每个项目

我的第二个建议增加了项目构建之间的隔离.使用caches指令将每个项目配置为拥有自己的私有缓存.在你常春藤设置文件中.