首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >构建Go项目: go mod下载与go构建

构建Go项目: go mod下载与go构建
EN

Stack Overflow用户
提问于 2021-04-15 09:13:11
回答 2查看 576关注 0票数 0

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

我注意到在CircleCI Go orb中没有使用go build,这让我感到困惑,因为在CircleCI Go Language Guide中,他们专门通过makefile使用go build

因此,我不确定单独使用Go球体是否足够(尽管这对我来说似乎很奇怪)。我模糊地知道go mod download是做什么的,go build是做什么的,但我见过examples将它们一起使用:

代码语言:javascript
运行
复制
RUN go mod download

COPY . .

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

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

代码语言:javascript
运行
复制
  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 download而不是go build或带有go mod downloadgo build会遗漏或无意中包含哪些内容

EN

回答 2

Stack Overflow用户

发布于 2021-04-16 00:02:35

go mod download文档详细说明,由于未提供参数,因此将下载所有依赖项。

不带参数的

,则下载将应用于主模块的所有依赖项。

问题中的行似乎是CI作业的完整说明的子集。来自Circle CI documentation的示例建议了一个构建步骤,该步骤是获取可执行文件所必需的。

任何build命令都允许选择有关依赖项的行为。正如所建议的,拥有单独的go mod download取决于环境的约束。

票数 0
EN

Stack Overflow用户

发布于 2021-06-29 10:50:10

go mod download下载所有依赖模块的源代码,并验证新下载的模块的校验和。(请注意,在Go 1.18中,我们对go mod download的行为进行了plan to change,因此它只能下载在main模块中构建包和测试所需的模块。)

go build构建包。它会自动下载(并验证)构建这些包所需的模块源代码。在许多情况下,这是一个比go mod download下载的模块少得多的模块集。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67100948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档