登录
首页 >  Golang >  Go问答

使用供应商模式时无法执行`go build -modvendor`

来源:stackoverflow

时间:2024-02-25 19:54:25 253浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《使用供应商模式时无法执行`go build -modvendor`》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

将我的 go 服务部署到 google appengine(标准)时,我收到一条错误消息,描述未找到模块版本,但一切都编译正常。

这些模块位于私有 github 实例上,并签出到 vendor/

go build -modvendor -o /dev/null ./... 可在 cloud-build-local、本地和 google cloud build 中工作。 github.com/company/gosystem 上存在名为“v1.1.0”的标签:

gosystem$ git tag
v0.0.1
v0.0.2
v0.0.3
v1.0.0
v1.1.0
Failed to build app: [go build -o /tmp/staging172777881/usr/local/bin/start .] with env [PATH=/go/bin:/usr/local/go/bin:/builder/google-cloud-sdk/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOSTNAME=f3f56ce621f0 HOME=/builder/home BUILDER_OUTPUT=/builder/outputs DEBIAN_FRONTEND=noninteractive GOROOT=/usr/local/go/ GOPATH=/go GO111MODULE=on GOCACHE=/tmp/cache019702820 GOPATH=/go] failed: err=exit status 1, out="
go: finding github.com/pquerna/otp v1.1.0
go: finding github.com/gin-gonic/gin v1.4.0
go: finding github.com/pkg/errors v0.8.1
go: finding github.com/rainycape/unidecode v0.0.0-20150907023854-cb7f23ec59be
go: finding github.com/gosimple/slug v1.5.0
go: finding github.com/boombuler/barcode v1.0.0
go: finding github.com/company/gosystem v1.1.0
go: finding github.com/oblq/i18n v0.0.0-20181031085821-98eec2978e00
go: finding github.com/go-pg/pg v8.0.4+incompatible
go: finding golang.org/x/text v0.3.2
go: finding github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd
go: finding github.com/modern-go/reflect2 v1.0.1
go: finding github.com/golang/protobuf v1.3.1
go: finding github.com/stretchr/testify v1.3.0
go: finding github.com/ugorji/go/codec v0.0.0-20190204201341-e444a5086c43
go: finding github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3
go: finding github.com/mattn/go-isatty v0.0.7
go: github.com/company/[email protected]: unknown revision v1.1.0

grep -ri 'gosystem@' * 没有报告任何内容。


解决方案


最后,我通过强制 go 使用 vendor 来完成这项工作,并将其添加到 go.mod 中:

replace github.com/company/gosystem => ./vendor/github.com/company/gosystem

go 使用 https 来获取版本/依赖项。即使您使用供应商,go 也会验证版本。由于 github.com/venclave/gosystem 是一个私人存储库,因此 git 无法访问它。

对此几乎没有解决方法。

1 - 使用 ssh:

git config --global url.ssh://[email protected]/venclave.insteadof https://github.com/venclave

2 - 使用 github 令牌:

在此处生成 github_token https://github.com/settings/tokens

export GITHUB_TOKEN=xxx
git config --global url."https://${GITHUB_TOKEN}:[email protected]/venclave".insteadOf "https://github.com/venclave"

以上就是《使用供应商模式时无法执行`go build -modvendor`》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>