问题标签 [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.
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 包,我会得到:
go - 在 gcp cloudbuild 中使用“replace”指令失败
我正在尝试使用serverless framework
cloudbuild 构建我的 go 应用程序。
这是我的项目结构
这是我的构建步骤:
这是我go.mod
的api/giam
我确认go.mod
我的util
文件夹中有一个。
这是内容
错误
运行 cloudbuild 时出现此错误..
如果我做对了,错误是它找不到/workspace/util/go.mod
我ls
在cloudbuild中尝试过,特别是在/workspace/util
我找到了go.mod
文件。
我很卡在这里..我不知道下一步该怎么做..
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-registry
。jfrog rt go build --no-registry
除了打电话之外,还会做其他事情吗go build
?有没有办法传递参数?
docker - 在单独的 Docker 层中构建 go 依赖项
我正在尝试加快我的 Go 应用程序的 Docker 构建速度。现在,它可能花费 60 年代来构建依赖项(它是一个 k8s 控制器,所以有很多)。
一个非常重要的限制:我的项目依赖于私有 GitHub 存储库。我在go mod vendor
外面做docker build
,我在那里建立了回购协议。
我现在的 Dockerfile 大致是:
即使不必下载 deps,该构建也需要一段时间,因为它会在每个docker build
.
我想做的是:
我尝试了 parsing go.mod
,但当然列出了模块,而不是包。我尝试过go list
,但从未设法获得有效的咒语。
go - 由于无法获取依赖项而无法构建 coredns 项目
我试图通过在我的 gopath 中克隆 repo 并运行 make 来构建 coredns https://github.com/coredns/coredns/ ,这产生了以下错误
我跑了go mod tidy
,它修复了错误,x/sys
但之后又出现了另一个错误
当我尝试去获取这个包时,我得到了同样的错误,我的 gopath 中没有这个包,我的缓存目录中也没有它。
什么似乎是这里的问题?
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 代码中?
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 供应商将其下载到何处,但不知道如何处理。
提前致谢
go - 同时使用 Go 模块和供应商部署 Google Cloud Function
我正在尝试在 Go 中部署 Google Cloud 功能,但在部署时出错,因为我同时使用子包和“内部模块”(仅在我的主机上定义,未部署在任何地方)。我有以下结构:
我的function.go
(我的云功能的入口点)的内容:
主题已在此处单独介绍:
第一篇文章表示使用 vendoring 和 excludego.mod
并go.sum
从源代码中使用common
模块,而第二篇文章表示包含go.mod
和go.sum
不使用 vendoring 以便能够使用子包。
但我想知道:是否可以同时使用两者?或者供应商依赖项需要将所有.go
源文件放在同一个目录中(没有子包)?同样,使用子包需要不使用供应商?如何构建我的代码以避免这些限制,或者我能做什么(在common
某处部署模块,...)?
此外,有关 Go Cloud Functions 的“指定依赖项”的文档指出:
Go 中的 Cloud Functions 必须通过带有 go.mod 文件的 Go 模块或供应商目录提供所有依赖项。您的函数不能同时使用Go 模块和供应商目录指定依赖项。
go - 修改供应商的 Go 模块和依赖项
我正在尝试将一个 Go 项目转换为新的模块标准,但我遇到了一个依赖项的问题。
该存储库提供了一个库(在本例中为 golang.org/x/net/html)以向该库添加一些功能;这意味着它已经修改了 vendored 依赖项(向结构添加了一个方法)。
所以问题是,在我执行之后go mod init
,当我执行go get ./...
系统抱怨调用该附加功能时,因为它忽略了修改后的供应商并尝试导入上游库。
有没有办法让go mod
知道它应该使用 vendored 依赖项?