這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
用 dep 代替 go get 來擷取私人庫
(金慶的專欄 2017.11)
go get 功能比較弱,無法擷取分支,標籤,特定版本,fork, 而 dep 可以做到。dep 還可以擷取私人庫。
用 gitee.com 私人庫作測試。建立 gogettest 庫。
可用:
go get -u gitee.com/jinq0123/gogettest
如果改為私人庫則失敗:
λ go get -v gitee.com/jinq0123/gogettestFetching https://gitee.com/jinq0123/gogettest?go-get=1Parsing meta tags from https://gitee.com/jinq0123/gogettest?go-get=1 (status code 403)package gitee.com/jinq0123/gogettest: unrecognized import path "gitee.com/jinq0123/gogettest" (parse https://gitee.com/jinq0123/gogettest?go-get=1: no go-import meta tags ())
利用 dep 工具取私人庫
https://github.com/golang/dep
安裝dep
go get -u github.com/golang/dep/cmd/dep
初始化
在項目目錄下運行:
dep init
產生 Gopkg.toml 和 Gopkg.lock
添加強制(constraint)
在 Gopkg.toml 中添加:
[[constraint]] branch = "master" name = "gitee.com/jinq012345/gogettest" source = "https://gitee.com/jinq0123/gogettest.git"
source 強制使用 https 來擷取 gotgettest 庫。
注意庫名改成了 jinq012345, 這樣匯入:
imort "gitee.com/jinq012345/gogettest"
name和source的設定可支援從 fork 庫擷取。
擷取gogettest庫
dep ensure
會彈出 https 的登入使用者名稱和密碼輸入框。