對于golang初學者來說,go語言不像java有maven管理那麼方便。依賴包的管理無從下手,往往遇到包沖突後解決問題束手無策。從網上随意找一些第三方的工具包使用,使用過程感覺就是一團亂,用起來各種不方便。官方為了golang語言更好的發展,推出官方依賴管理工具dep。dep是一個原型依賴管理工具,需要在Go 1.7及更高的版本中使用。而且dep在新版本中發展也相對比較成熟,使用簡單。
安裝
go get -u github.com/golang/dep/cmd/dep
使用
$GOPATH/src/項目
首先初始化:
dep init
項目目錄下出現了兩個文件(Gopkg.lock、Gopkg.toml)和一個目錄(vendor)。

接下來看下Gopkg.lock、Gopkg.toml文件内容:
$ cat Gopkg.lock
# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
[solve-meta]
analyzer-name = "dep"
analyzer-version = 1
inputs-digest = "ab4fef131ee828e96ba67d31a7d690bd5f2f42040c6766b1b12fe856f87e0ff7"
solver-name = "gps-cdcl"
solver-version = 1
$ cat Gopkg.toml
# Gopkg.toml example
#
# Refer to htte -add github.com/bitly/go-simplejson@=0.4.3
再來看下Gopkg.lock、Gopkg.toml文件變化:
$ vim Gopkg.toml
[[constraint]]
name = "github.com/astaxie/beego"
version = "1.8.3"
[[constraint]]
name = "github.com/bitly/go-simplejson"
version = "0.5.0"
$ vim Gopkg.lock
[[projects]]
name = "github.com/astaxie/beego"
packages = [".","config","context","context/param","grace","logs","session","toolbox","utils"]
revision = "cab8458c1c4a5a3b4bf5192922be620e6dede15b"
version = "v1.8.3"
[[projects]]
name = "github.com/bitly/go-simplejson"
packages = ["."]
revision = "aabad6e819789e569bd6aabf444c935aa9ba1e44"
version = "v0.5.0"
[solve-meta]
analyzer-name = "dep"
analyzer-version = 1
inputs-digest = "dc040fb12390d61768be6388ad2935bdd7f9cc93d4b1fdda421a284058277c80"
solver-name = "gps-cdcl"
solver-version = 1
在項目下可以看到vendor目錄,已經把依賴包集中管理。後續可以直接做交叉編譯,不必擔心包管理問題。
小結:
dep的依賴包每一次都是拉取新的還是優先使用本地cache呢?可以肯定的是dep也是有本地緩存的,可以打開$GOPATH/pkg/dep/看看,是不是存在呢!
更多内容關注每日編程,每天進步一點。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!