DI中,依赖库是在哪一步拉取呢?
我们知道,项目中的依赖库,一般不提交到git版本中的,但是问题来了,我们现在假设用了 CI-CD 持续集成,那么我们是不是得在其中的流水线服务器,或者最终的应用服务器拉取依赖库呢?
这样的话,每次拉取依赖,耗时是个问题啊。
正常的 CI 都有 cache 功能。
例如 Github Action 的 setup-go 可以根据 go.mod 缓存依赖。每次构建的时候,先根据 go.mod 计算哈希,然后尝试下载缓存文件,虽然也是网络下载,但是缓存是打包压缩的,比 go mod download 快很多。如果 cache 不存在,才会 go mod download,然后缓存。