gpt4 book ai didi

go - 如何消除 go get 依赖检查?

转载 作者:数据小太阳 更新时间:2023-10-29 03:18:13 26 4
gpt4 key购买 nike

当我执行 go get -u github.com/spf13/viper 时,它有一个依赖项 golang.org/x/sys。它将自动执行 cd ${GOPATH}/src/golang.org/x/sys; git pull --ff-only.

这真的是多余的没有用。

我的网络无法访问 golang.org/x/sys。所以我已经使用了 github.com/golang/sys 并将其放入我的 GOPATH/src/golang.org/x。这意味着自动检查(cd ${GOPATH}/src/golang.org/x/sys; git pull --ff-only) for the progress(go get -u github.com/spf13/viper) 应该完全消除,因为它卡住了我的 jenkins 部署时间。

超过 90% 的 jenkins 部署时间都浪费在像这样的检查上

cd ${GOPATH}/src/golang.org/x/sys; git pull --ff-only

cd ${GOPATH}/src/golang.org/x/text; git pull --ff-only

...

这是我的 Jenkins 日志的一部分:

# cd /home/tonnn/go/src/golang.org/x/sys; git pull --ff-only
fatal: unable to access 'https://go.googlesource.com/sys/': Failed connect to go.googlesource.com:443; Connection timed out
package golang.org/x/sys/unix: exit status 1

# cd /home/tonnn/go/src/golang.org/x/text; git pull --ff-only
fatal: unable to access 'https://go.googlesource.com/text/': Failed connect to go.googlesource.com:443; Connection timed out

那么,有没有办法只获取viper而不检查它的依赖关系呢?

viper 只是一个例子来说明我的问题。我敢打赌你们中的大多数人都遇到过这种问题。

我正在使用 Go 1.9。

最佳答案

不好意思自己回答这个问题,但我确实找到了解决方案。

${GOPATH}/src/golang.org/x/sys 在你从 github.com/golang/sys 获取之前就已经存在了。它会跳到这里阶段并导致当您执行 git remote -v 时发生的情况。它会列出来源 https://go.googlesource.com/sys fetch/push。这正是是什么导致我卡住 fetch googlesource.com/sys time out

好的,现在有两种方法可以修复它。

第一种方法,删除现有包并使其完全从 github.com/golang/sys 获取。rm -rf ${GOPATH}/src/golang.org/x/sys。在 jenkins shell 作业之后,其 git remote 将正确转换为 https://github.com/golang/系统

第二种方式,改变它的origin remote。

cd ${GOPATH}/src/golang.org/x/sys
git remote remove origin
git remote add origin https://github.com/golang/sys.git

希望对大家有所帮助。

关于go - 如何消除 go get 依赖检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57884642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com