Golang開發(fā)Go依賴管理工具dep安裝驗(yàn)證實(shí)現(xiàn)過程
Go依賴管理工具
Go dependency management tool
環(huán)境要求
Golang >= 1.9Dep
目前版本
dep: version : devel build date : git hash : go version : go1.10 go compiler : gc platform : linux/amd64
Latest release為v0.4.1
安裝
go get -u github.com/golang/dep/cmd/dep
若$GOPATH/bin不在PATH下,則需要將生成的dep文件從$GOPATH/bin移動(dòng)至$GOBIAN下
驗(yàn)證
$ dep Dep is a tool for managing dependencies for Go projects Usage: "dep [command]" Commands: init Set up a new Go project, or migrate an existing one status Report the status of the project's dependencies ensure Ensure a dependency is safely vendored in the project prune Pruning is now performed automatically by dep ensure. version Show the dep version information Examples: dep init set up a new project dep ensure install the project's dependencies dep ensure -update update the locked versions of all dependencies dep ensure -add github.com/pkg/errors add a dependency to the project Use "dep help [command]" for more information about a command.
初始化
在項(xiàng)目根目錄執(zhí)行初始化命令,dep在初始化時(shí)會(huì)分析應(yīng)用程序所需要的所有依賴包,得出依賴包清單
并生成vendor目錄,Gopkg.toml、Gopkg.lock文件
默認(rèn)初始化
$ dep init -v
直接從對(duì)應(yīng)網(wǎng)絡(luò)資源處下載
優(yōu)先從$GOPATH初始化
$ dep init -gopath -v
該命令會(huì)先從$GOPATH查找既有的依賴包,若不存在則從對(duì)應(yīng)網(wǎng)絡(luò)資源處下載
Gopkg.toml
該文件由dep init生成,包含管理dep行為的規(guī)則聲明
required = ["github.com/user/thing/cmd/thing"] ignored = [ "github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY" ] [metadata] key1 = "value that convey data to other systems" system1-data = "value that is used by a system" system2-data = "value that is used by another system" [[constraint]] # Required: the root import path of the project being constrained. name = "github.com/user/project" # Recommended: the version constraint to enforce for the project. # Note that only one of "branch", "version" or "revision" can be specified. version = "1.0.0" branch = "master" revision = "abc123" # Optional: an alternate location (URL or import path) for the project's source. source = https://github.com/myfork/package.git # Optional: metadata about the constraint or override that could be used by other independent systems [metadata] key1 = "value that convey data to other systems" system1-data = "value that is used by a system" system2-data = "value that is used by another system"
Gopkg.lock
該文件由dep ensure和dep init生成,包含一個(gè)項(xiàng)目依賴關(guān)系圖的傳遞完整快照,表示為一系列[[project]]節(jié)
# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
[[projects]]
branch = "master"
name = "github.com/golang/protobuf"
packages = [
"jsonpb",
"proto",
"protoc-gen-go/descriptor",
"ptypes",
"ptypes/any",
"ptypes/duration",
"ptypes/struct",
"ptypes/timestamp"
]
revision = "bbd03ef6da3a115852eaf24c8a1c46aeb39aa175"
常用命令
dep ensure
從項(xiàng)目中的Gopkg.toml和Gopkg.lock中分析關(guān)系圖,并獲取所需的依賴包
用于確保本地的關(guān)系圖、鎖、依賴包清單完全一致
dep ensure -add
# 引入該依賴包的最新版本 dep ensure -add github.com/pkg/foo # 引入具有特定約束(指定版本)的依賴包 dep ensure -add github.com/pkg/foo@^1.0.1
dep ensure -update
將Gopkg.lock中的約定依賴項(xiàng)更新為Gopkg.toml允許的最新版本
以上就是Golang開發(fā)Go依賴管理工具dep安裝驗(yàn)證實(shí)現(xiàn)過程的詳細(xì)內(nèi)容,更多關(guān)于Golang開發(fā)Go依賴管理工具dep的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Golang HTTP 服務(wù)平滑重啟及升級(jí)的思路
Golang HTTP服務(wù)在上線時(shí),需要重新編譯可執(zhí)行文件,關(guān)閉正在運(yùn)行的進(jìn)程,然后再啟動(dòng)新的運(yùn)行進(jìn)程。這篇文章主要介紹了Golang HTTP 服務(wù)平滑重啟及升級(jí),需要的朋友可以參考下2020-04-04
go語言中sort包的實(shí)現(xiàn)方法與應(yīng)用詳解
golang中也實(shí)現(xiàn)了排序算法的包sort包,所以下面這篇文章主要給大家介紹了關(guān)于go語言中sort包的實(shí)現(xiàn)方法與應(yīng)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
Go并發(fā)編程實(shí)現(xiàn)數(shù)據(jù)競(jìng)爭
本文主要介紹了Go并發(fā)編程實(shí)現(xiàn)數(shù)據(jù)競(jìng)爭,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
在Linux系統(tǒng)中安裝Go語言的詳細(xì)教程
這篇文章主要介紹了在Linux系統(tǒng)中安裝Go語言的詳細(xì)教程,由于國內(nèi)很多人對(duì)谷歌的盲目追捧,導(dǎo)致Go語言在國內(nèi)的人氣遠(yuǎn)超國外...需要的朋友可以參考下2015-06-06

