构建 Go 项目:Go Mod 下载 vs Go 构建

我是新手,正试图弄清楚如何在我的circleci项目中执行构建步骤。

我注意到在CircleCI Go球体中没有使用,这让我感到困惑,因为在CircleCI Go语言指南中,他们专门通过makefile使用go buildgo build

所以我不确定单独使用Go球是否足够(尽管这对我来说似乎很奇怪)。我模糊地理解go mod下载的作用,以及go build的作用,但是我已经看到了它们一起使用的示例

RUN go mod download


COPY . .


RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build

目前,根据go orb使用文档,我有:


  build:

    executor: go

    steps:

      - checkout

      - go/load-cache:

          key: go-mod-v1-{{ checksum "go.sum" }}

      - go/mod-download

      - go/save-cache:

          key: go-mod-v1-{{ checksum "go.sum" }}

      - slack/notify:

          event: fail

          template: basic_fail_1   

我错过了什么或无意中通过使用代替或与?go mod downloadgo buildgo buildgo mod download


慕桂英546537
浏览 67回答 2
2回答

噜噜哒

go mod download下载所有依赖项模块的源代码,并验证新下载模块的校验和。(请注意,在 Go 1.18 中,我们计划更改 的行为,以便它可以只下载在主模块中构建包和测试所需的模块。go mod downloadgo build构建软件包。它根据需要自动下载(并验证)模块源代码以构建这些包。在许多情况下,这是一组比 下载的模块小得多的模块。go mod download

阿波罗的战车

go mod下载的文档详细介绍了所有依赖项,因为没有提供参数,因此将下载所有依赖项。如果没有参数,下载将应用于主模块的所有依赖项。问题中的行似乎是 CI 作业完整说明的子集。Circle CI 文档中的示例建议了一个构建步骤,该步骤是获取可执行文件所必需的。任何生成命令都允许选择有关依赖项的行为。正如所建议的,有一个单独的取决于环境的约束。go mod download
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go