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