问题标签 [go-modules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
291 浏览

go - 如何将 vendored 参数用于外部包中的函数?

我有包a,它依赖于一个外部包,语言包:

对于包 a,我运行了“dep init”,然后运行了“dep ensure”。

在另一个包中,我有一个 main.go 文件,它导入包 a:

我收到一个错误:

如果我将主包放在包 a 中,它可以正常工作。为什么从外部包调用时它不起作用?

Go 版本是 1.10.2

编辑:我可以完全控制包 a,所以我可以改变我在那里销售东西的方式。如果使用较新的 Go 版本可以轻松修复,我也可以升级我的 Go 版本。

更新:我已经升级到 Go 1.12.1 并删除了现有的供应商目录。我为包 a 运行了“go mod init”和“go mod vendor”,但是当我在包 b 中运行 main.go 时仍然得到相同的错误。

如果我尝试直接从包 a 导入 vendored 包,我会得到:

0 投票
1 回答
157 浏览

go - 在 gcp cloudbuild 中使用“replace”指令失败

我正在尝试使用serverless frameworkcloudbuild 构建我的 go 应用程序。

这是我的项目结构

这是我的构建步骤:

这是我go.modapi/giam

我确认go.mod我的util文件夹中有一个。

这是内容

错误

运行 cloudbuild 时出现此错误..

如果我做对了,错误是它找不到/workspace/util/go.mod

ls在cloudbuild中尝试过,特别是在/workspace/util我找到了go.mod文件。

我很卡在这里..我不知道下一步该怎么做..

0 投票
1 回答
156 浏览

go - jfrog 带参数的 go 命令

文档建议使用jfrog rt go build --no-registry. 我们正在使用 go 模块,并且该命令在识别当前模块时失败 - can't load package: package unknown import path cannot find module providing package,与此相同go build

go build ./...虽然确实有效,但我做不到jfrog rt go build ./.. --no-registryjfrog rt go build --no-registry除了打电话之外,还会做其他事情吗go build?有没有办法传递参数?

0 投票
1 回答
963 浏览

docker - 在单独的 Docker 层中构建 go 依赖项

我正在尝试加快我的 Go 应用程序的 Docker 构建速度。现在,它可能花费 60 年代来构建依赖项(它是一个 k8s 控制器,所以有很多)。

一个非常重要的限制:我的项目依赖于私有 GitHub 存储库。我在go mod vendor外面做docker build,我在那里建立了回购协议。

我现在的 Dockerfile 大致是:

即使不必下载 deps,该构建也需要一段时间,因为它会在每个docker build.

我想做的是:

我尝试了 parsing go.mod,但当然列出了模块,而不是包。我尝试过go list,但从未设法获得有效的咒语。

0 投票
0 回答
202 浏览

go - 由于无法获取依赖项而无法构建 coredns 项目

我试图通过在我的 gopath 中克隆 repo 并运行 make 来构建 coredns https://github.com/coredns/coredns/ ,这产生了以下错误

我跑了go mod tidy,它修复了错误,x/sys但之后又出现了另一个错误

当我尝试去获取这个包时,我得到了同样的错误,我的 gopath 中没有这个包,我的缓存目录中也没有它。

什么似乎是这里的问题?

0 投票
2 回答
45308 浏览

go - 使用 Go 模块在包中组织本地代码

main.go$GOPATH. _

我没有导入任何需要包含的外部依赖go.mod项,我只是想在本地组织这个 Go 模块的源代码。

文件main.go

该文件./stuff/bar.go(假装是本地包):

文件go.mod(命令go mod init foo):

执行时go run main.go

  • 如果我import "./stuff",那么我看到了build command-line-arguments: cannot find module for path _/home/<PATH_TO>/fooprj/stuff
  • 如果我import "stuff",那么我看到了build command-line-arguments: cannot load stuff: cannot find module providing package stuff
  • 如果我import stuff "./stuff"使用包别名,那么我会再次看到:build command-line-arguments: cannot find module for path _/home/<PATH_TO>/fooprj/stuff.

我找不到使本地包与 go 模块一起使用的方法。

  • 上面的代码有什么问题?
  • 如何将本地包导入到使用 Go 模块(文件go.mod)定义的项目中的其他 Go 代码中?
0 投票
1 回答
13548 浏览

go - 去 mod 供应商而不更新到最新版本

我试图弄清楚是否可以在没有 go 工具更新我的 go.mod 文件的情况下运行 go mod vendor。

我专门用正确的版本go get package/subpackage@commit提交了我的。go.mod

然后我运行go mod vendor它,它会自动调整我刚刚专门设置的包的版本。

我查看了此页面无济于事:https ://github.com/golang/go/wiki/Modules#how-do-i-use-vendoring-with-modules-is-vendoring-going-away

我需要使用供应商,因为我运行了一个编辑一些供应商部门的脚本。我正在查看以下构建流程:

我的另一个选择是修改复制的源,无论 go mod 供应商将其下载到何处,但不知道如何处理。

提前致谢

0 投票
0 回答
948 浏览

go - 同时使用 Go 模块和供应商部署 Google Cloud Function

我正在尝试在 Go 中部署 Google Cloud 功能,但在部署时出错,因为我同时使用子包“内部模块”(仅在我的主机上定义,未部署在任何地方)。我有以下结构:

我的function.go(我的云功能的入口点)的内容:

主题已在此处单独介绍:

第一篇文章表示使用 vendoring 和 excludego.modgo.sum从源代码中使用common模块,而第二篇文章表示包含go.modgo.sum不使用 vendoring 以便能够使用子包。

但我想知道:是否可以同时使用两者?或者供应商依赖项需要将所有.go源文件放在同一个目录中(没有子包)?同样,使用子包需要不使用供应商?如何构建我的代码以避免这些限制,或者我能做什么(在common某处部署模块,...)?

此外,有关 Go Cloud Functions 的“指定依赖项”的文档指出:

Go 中的 Cloud Functions 必须通过带有 go.mod 文件的 Go 模块或供应商目录提供所有依赖项。您的函数不能同时使用Go 模块和供应商目录指定依赖项。

0 投票
1 回答
17468 浏览

go - 去模块 - 替换不起作用 - 没有版本的替换模块必须是目录路径(根或以

我只想使用使用 go 模块的本地包。

我在 goweb 文件夹中有这些文件:

在此处输入图像描述

和 go.mod

模块 goweb

go.mod抱怨:

去 -u ./...

所以我在这里缺少一些路径结构

0 投票
2 回答
1963 浏览

go - 修改供应商的 Go 模块和依赖项

我正在尝试将一个 Go 项目转换为新的模块标准,但我遇到了一个依赖项的问题。

该存储库提供了一个库(在本例中为 golang.org/x/net/html)以向该库添加一些功能;这意味着它已经修改了 vendored 依赖项(向结构添加了一个方法)。

所以问题是,在我执行之后go mod init,当我执行go get ./...系统抱怨调用该附加功能时,因为它忽略了修改后的供应商并尝试导入上游库。

有没有办法让go mod知道它应该使用 vendored 依赖项?