gpt4 book ai didi

ant - Ivy , Ant , Jenkins - on Jenkins builds? 是个好主意

转载 作者:行者123 更新时间:2023-12-04 02:05:39 26 4
gpt4 key购买 nike

我们将在 Ant 中使用 Ivy,并让 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,Jenkins 会感到困惑吗?同时?

最佳答案

在我看来,每次构建都运行 ivy cleancache 任务是多余的,并且消除了使用 ivy 的主要好处之一,即智能下载 3rd 方依赖项。

话虽如此,如以下相关 Maven 问题中所述,所有缓存都可能变脏,应定期清除:

When is it safe to delete the local Maven repository?

几个建议:

使用专门的 Jenkins 作业清除 ivy 缓存

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

<target name="clean-all" depends="clean">
<ivy:cleancache/>
</target>

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

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

我的第二个建议增加了项目构建之间的隔离。使用 caches 将每个项目配置为拥有自己的私有(private)缓存指示。在你的 Ivy 设置文件中。

关于ant - Ivy , Ant , Jenkins - <ivy :cleancache> on Jenkins builds? 是个好主意,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12076067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com