Go依赖管理工具
Go dependency management tool
环境要求
Golang >= 1.9Dep
目前版本
1
2
3
4
5
6
7
|
dep:
version : devel
build date :
git hash :
go version : go1.10
go compiler : gc
platform : linux /amd64
|
Latest release
为v0.4.1
安装
1
|
go get -u github.com /golang/dep/cmd/dep
|
若$GOPATH/bin
不在PATH
下,则需要将生成的dep
文件从$GOPATH/bin
移动至$GOBIAN
下
验证
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$ 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.
|
初始化
在项目根目录执行初始化命令,dep
在初始化时会分析应用程序所需要的所有依赖包,得出依赖包清单
并生成vendor
目录,Gopkg.toml
、Gopkg.lock
文件
默认初始化
1
|
$ dep init -v
|
直接从对应网络资源处下载
优先从$GOPATH初始化
1
|
$ dep init -gopath -v
|
该命令会先从$GOPATH
查找既有的依赖包,若不存在则从对应网络资源处下载
Gopkg.toml
该文件由dep init
生成,包含管理dep
行为的规则声明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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
生成,包含一个项目依赖关系图的传递完整快照,表示为一系列[[project]]
节
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# 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
从项目中的Gopkg.toml
和Gopkg.lock
中分析关系图,并获取所需的依赖包
用于确保本地的关系图、锁、依赖包清单完全一致
dep ensure -add
1
2
3
4
5
|
# 引入该依赖包的最新版本
dep ensure -add github.com/pkg/foo
# 引入具有特定约束(指定版本)的依赖包
dep ensure -add github.com/pkg/foo@^1.0.1
|
dep ensure -update
将Gopkg.lock
中的约定依赖项更新为Gopkg.toml
允许的最新版本
以上就是Golang开发Go依赖管理工具dep安装验证实现过程的详细内容,更多关于Golang开发Go依赖管理工具dep的资料请关注服务器之家其它相关文章!
原文链接:https://blog.csdn.net/ffzhihua/article/details/83309536