当我执行具有依赖项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。
答案 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
希望对您所有人有帮助。