golang 私有包导入
- github 上的公有包导入比较常见,私有包导入方面的教程不多,这里记录一下自己遇到的问题
- 没钱买 Mac,开发环境是 Windows
设置 gitlab 的 public key
-
配置本地的 git,username,email 等。根据自己实际情况调整下边的参数。注意!操作都是在 git bash 上边!除非特殊说明
$ git config --global user.name "your name" $ git config --global user.email "your email@address" // 下边这条的含义是用 ssh 的时候用 git 而不是 https $ git config --global url."git@address:".insteadOf "https://address.com"
- 然后就是在 gitlab 上边添加自己生成的 public key。操作步骤。gitlab 的文档说得很清楚。
设置代理去墙外边取包
- 正常来说,添加 key 之后,就可以把 gitlab 的项目拉到本地。但是 golang 项目比较特殊,我们希望用 go get 命令,把依赖的包也取过来。
-
这就意味着,需要在 git bash 中设置代理。注意,千万不要像我这么傻,用 CMD 的 set 去设置 http_proxy。
$ export ALL_PROXY="socks5://127.0.0.1:1080"
- 直接像上边,按照 Linux 系统的习惯去设置代理。我用的是 ssr。
遇到的一个报错
- 上边的步骤基本完整,最后 go get 自己的私有包就行。但是,因为我的项目是用 module 做依赖管理的,所以还需要在 go.mod 那级目录下执行 go mod tidy。
- 报错信息:go modules disabled inside gopath/src by go111module=auto
-
我的解决办法。从报错信息来看就是变量 go111module 的值没设置对。改一下就 OK 了。
$ export GO111MODULE=on