在 Go 模块支持中,依赖项会在构建或安装过程中自动管理和安装。这与简化依赖关系管理的目标是一致的。
但是,一些开发人员更喜欢显式管理依赖关系的灵活性。在其他生态系统中,复制依赖项清单(例如 package.json)并单独安装依赖项是很常见的。这种方法利用 Docker 的层缓存来优化重建性能。
解决方案
为了满足这一需求,Go 引入了在问题 #26610 中修复的解决方案。开发人员现在可以使用 go mod download 命令手动获取依赖项。此命令仅需要 go.mod 和 go.sum 文件。
如何在 Docker 构建中使用此命令的示例如下所示:
FROM golang:1.17-alpine as builder ... # Fetch dependencies COPY go.mod go.sum ./ RUN go mod download # Build ...
此外,请参阅文章“容器化您的 Go 开发环境 – 第 2 部分”,了解使用 Go 编译器缓存的进一步优化技术。
以上是Go 是否允许显式依赖项获取来优化构建?的详细内容。更多信息请关注PHP中文网其他相关文章!