golang包管理工具dep使用簡明攻略
阿新 • • 發佈:2018-12-10
安裝
dep需要golang版本在1.9以上go get -u github.com/golang/dep/cmd/dep
dep工作流
因為有牆,所以使用之前請先設定命令列代理,梯子自備
export {http,https}_proxy='127.0.0.1:1080'
- 新建專案
// 專案需要建立在gopath下
cd $GOPATH/src
mkdir my-project
dep init -v
- dep init 新專案或還未使用包管理的專案初始化
init會分析go檔案中import的包並安裝,將依賴資訊寫入Gopkg.toml檔案,安裝的revision寫入Gopkg.lock檔案
- dep ensure 同步依賴包 一個命令可以完成包的安裝缺失的包、解除安裝無用的包,使程式碼中的import、lock檔案、vendor中的包保持同步
- Gopkg.toml這個檔案主要是用來人工修改的,可以新增一些限制條件,Gopkg.lock才是真正的版本資訊
- dep ensure -add [package name] 安裝指定包
- dep ensure -update [package name] 更新指定包
- dep ensure -update 更新所有包
- dep status 檢視同步狀態
舊專案改造
- 進入專案根目錄執行dep init -gopath -v
解釋一下常用引數:
-gopath 從本地的gopath獲取包版本
-v verbose
-skip-tools dep會自動從之前的包管理檔案中載入版本資訊,如govendor,glide等。如果你不想從之前的包管理遷移可以加上此引數
- 將Gopkg.toml和Gopkg.lock提交到git
- 之後安裝新的依賴使用dep ensure -add [package name]來安裝
- 在新環境拿到專案後使用dep ensure -v即可安裝依賴
使用dep可能存在的坑
- 牆很煩,請務必設定命令列代理
- 使用dep時儘量帶上 -v 命令,如果半分鐘沒響應就ctrl+c中斷,就可以看到fail的原因,dep遇到一些錯誤不會自己退出
- 私有庫的問題,比如gitlab上的,參考這篇文章https://segmentfault.com/a/11...。經測試,其實也不用在toml裡寫密碼,只要你在電腦上git設定了儲存密碼或者配置了ssh。簡單來說就是直接用git clone不需要輸入密碼確認之類的就能用dep down下來了
這是之前整理的dep使用攻略,隨著golang1.11釋出,gomod已經上線,以後應該會遷移到gomod。不過目前gomod還不成熟,很多專案也沒有激進的升級到1.11版本,dep還有用武之地。