如何防止每次测试运行时 gocd 管道下载 maven 依赖项?

问题描述

当我在 gocd 上运行测试时,maven 每次都会下载依赖项。

我正在考虑以下步骤。但我需要知道下载依赖项的文件夹的位置。

  • 使用两个管道。
  • 用于下载依赖项并为其创建工件。我打算运行一次。
  • 第二个用于运行测试。它从另一个管道中获取工件并直接运行测试。

这是一种防止每次都下载依赖项的方法吗?

解决方法

GoCD 不会专门为每次下载依赖项做任何事情。您在构建过程中运行的 mvn 命令就是这样做的。

发生这种情况的几个原因:

  1. 弹性代理:如果代理是构建后退役的容器,您可能会遇到此问题。考虑在代理上的路径 /var/go/.m2 上安装共享卷,以在运行中重复使用缓存。但是,这样做的方法超出了本答案的范围。

  2. 内务脚本:在代理框上清除 /var/go/.m2 或更普遍的 ~/.m2 比我想承认的更常见。这可能发生在一些基础设施/团队中,他们有一个脚本来清除这些依赖项以节省磁盘空间。如果您的基础架构中存在此类问题,您可能需要与您的运营团队核实。