tft每日頭條

 > 科技

 > golang 第三方包

golang 第三方包

科技 更新时间:2026-02-16 05:56:38

  對于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)。

  golang 第三方包(官方推行使用依賴包管理工具dep)(1)

  接下來看下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每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2026 - www.tftnews.com All Rights Reserved