2016年10月31日 星期一

[聖地巡禮] 長騎美眉 第二話 (ろんぐらいだぁす!)

清晨7:12

2016年10月20日 星期四

[Golang] 使用govendor管理packages

晚上10:02
使用govendor管理golang packages

前言:
因為工作使用Go當backend, 想當然一開始要把環境建構起來,
當時的專案裡,有一份環境建構的文件,
照著文件做,結果環境卻build failed !?

因為都是用 go get github.com/xxxx/packages 下載,
因為某些套件的更新,導致一些原本可以用的method變得不相容,
所以需要一個package管理的套件。

從Go的github wiki有列出幾個管理套件,
有試過govender以及glide,感覺govender比較適合我。

從Go 1.6以後就有支援vendor的功能,1.5可以藉由GO15VENDOREXPERIMENT=1的環境變數來實現vendor功能。

廢話有點多,來點實際的範例吧!

範例:
1. 從 https://github.com/kilfu0701/go-vendor-example 下載
git clone https://github.com/kilfu0701/go-vendor-example.git
cd go-vendor-example
export GOPATH=`pwd`
export PATH=$GOPATH/bin:$PATH

2. 安裝govender
go get -u github.com/kardianos/govendor
rm -rf src/github.com src/golang.org                # after install govender, remove "src/github.com" & "src/golang.org"

3. 安裝example需要的packages
cd src/app
govendor sync

4. 回到example主目錄 執行測試
cd $GOPATH
go run src/main.go

打開瀏覽器 http://localhost:8081/

參考資料(refs):
govender github
Goalng套件管理wiki