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

时间:2019-09-11 07:59:57

标签: go

当我执行具有依赖项go get -u github.com/spf13/viper的{​​{1}}时,它将自动执行golang.org/x/sys

这真的没用。

我的网络无法访问golang.org/x/sys。因此,我已经使用cd ${GOPATH}/src/golang.org/x/sys; git pull --ff-only并将其放入我的github.com/golang/sys中。这意味着应该完全消除进度(GOPATH/src/golang.org/x)的自动检查(cd ${GOPATH}/src/golang.org/x/sys; git pull --ff-only),因为这卡住了我的詹金斯的部署时间。

在诸如此类的检查中,浪费了90%以上的jenkins部署时间

go get -u github.com/spf13/viper

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

...

这是我的詹金斯日志的一部分:

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

那么,有没有办法只获取# 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仅是显示我的问题的一个例子。我敢打赌你们中的大多数人都遇到过这种问题。

我正在使用Go 1.9。

1 个答案:

答案 0 :(得分:0)

尴尬地亲自回答了这个问题,但我确实找到了解决方案。

在从${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/sys

第二种方式,远程更改其原点。

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

希望对您所有人有帮助。