我的目标是能够使用官方构建管道构建,打包和测试使用maven构建的java项目。
这样的设置已经到位,一切运行正常,但由于我们的连接中maven下载速度不佳,构建时间太长。
我的构建作业yml文件使用以下资源作为maven构建的基础:
# ...
image_resource:
type: docker-image
source:
repository: maven
tag: '3.3-jdk-8'
# ...
我知道每个建筑物都有一块“空白石板”,这是因为设计很容易进入大厅。
现在我的问题是:什么是缓存本地maven存储库的好方法(比如,至少有一些基本内容,如Spring及其依赖项)?
我想到了以下选项:
据我所知,选项1)不会使构建的下载大小变小,因为大厅似乎没有缓存用作构建作业基础的docker镜像(或者我在这里错了吗?)
在我继续之前,我想确保以下选项2)给我带来任何好处 - 使用concourse缓存码头图像作为资源吗?
我可能会错过一些东西,因为我对国会相对较新。如果我强迫你在这里说明显而易见的话,请原谅我。 :)
答案 0 :(得分:7)
output
任务的缓存依赖项文件夹(maven的.m2
文件夹)并将其用作input
的另一项任务。我认为Concourse CI会缓存用于任务的docker镜像,但也可以将它们作为管道的资源,然后使用任务的image
参数来传递该资源。您可以使用fly
的{{3}}命令查看缓存内容和持续时间。
答案 1 :(得分:0)
我可以确认大厅确实会缓存泊坞窗图像,因此创建一个具有所有依赖关系的图像可能不是一个糟糕的选择。
答案 2 :(得分:0)
您可以使用git资源类型用于缓存maven缓存的相同机制,就像现在这样:https://github.com/ymedlop-sandbox/npm-cache-resource(不是我的仓库)