Golang开发Go依赖管理工具dep安装验证实现过程

 更新时间:2021年11月16日 09:23:06   作者:秋天的春  
这篇文章主要为大家介绍了Golang开发Go依赖管理工具dep安装验证及初始化一系列实现过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步

Go依赖管理工具

Go dependency management tool

环境要求

 Golang >= 1.9Dep

目前版本

dep:
 version     : devel
 build date  : 
 git hash    : 
 go version  : go1.10
 go compiler : gc
 platform    : linux/amd64

Latest releasev0.4.1

安装

go get -u github.com/golang/dep/cmd/dep

$GOPATH/bin不在PATH下,则需要将生成的dep文件从$GOPATH/bin移动至$GOBIAN

验证

$ 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.tomlGopkg.lock文件

默认初始化

$ dep init -v

直接从对应网络资源处下载

优先从$GOPATH初始化

$ dep init -gopath -v

该命令会先从$GOPATH查找既有的依赖包,若不存在则从对应网络资源处下载

Gopkg.toml

该文件由dep init生成,包含管理dep行为的规则声明

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 ensuredep init生成,包含一个项目依赖关系图的传递完整快照,表示为一系列[[project]]

 # 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.tomlGopkg.lock中分析关系图,并获取所需的依赖包

用于确保本地的关系图、锁、依赖包清单完全一致

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中的约定依赖项更新为Gopkg.toml允许的最新版本

以上就是Golang开发Go依赖管理工具dep安装验证实现过程的详细内容,更多关于Golang开发Go依赖管理工具dep的资料请关注脚本之家其它相关文章!

相关文章

  • Go语言reflect包的反射机制基本用法示例

    Go语言reflect包的反射机制基本用法示例

    反射在处理接口和类型断言、开发通用功能或者设计框架时尤为重要,本文将深入探索 Go 语言中的反射机制,通过具体的示例展示如何使用 reflect 包,让你能够在 Go 项目中有效地利用这一强大的工具
    2023-11-11
  • go特性之数组与切片的问题

    go特性之数组与切片的问题

    这篇文章主要介绍了go特性之数组与切片的问题,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Golang实现IP地址转整数的方法详解

    Golang实现IP地址转整数的方法详解

    在 Go 语言中,将 IP 地址转换为整数涉及到解析 IP 地址并处理其字节表示,本文给大家介绍了Golang实现IP地址转整数的方法,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2024-02-02
  • 详解Go语言各种常见类型的默认值和判空方法

    详解Go语言各种常见类型的默认值和判空方法

    本文主要介绍了详解Go语言各种常见类型的默认值和判空方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Go1.21新增cmp包的用法详解

    Go1.21新增cmp包的用法详解

    Go 1.21新增的 cmp 包提供了与比较有序值相关的类型和函数,前几篇文章讲解的 slices 包中的函数有大量使用到 cmp 包中的函数和类型,下面我们就来看看cmp包的相关函数用法吧
    2023-08-08
  • Go语言单向通道的实现

    Go语言单向通道的实现

    本文主要介绍了Go语言单向通道的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Go如何实现json字符串与各类struct相互转换

    Go如何实现json字符串与各类struct相互转换

    这篇文章主要介绍了Go如何实现json字符串与各类struct相互转换,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 详解Golang的GC三色标记法

    详解Golang的GC三色标记法

    这篇文章主要为大家介绍了Golang的GC三色标记法,文中有详细的实现过程供大家参考,对大家的学习或工作有一定帮助,感兴趣的可以跟着小编一来看看
    2023-05-05
  • Golang 使用Map实现去重与set的功能操作

    Golang 使用Map实现去重与set的功能操作

    这篇文章主要介绍了Golang 使用 Map 实现去重与 set 的功能操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • Go项目配置管理神器之viper的介绍与使用详解

    Go项目配置管理神器之viper的介绍与使用详解

    viper是一个完整的 Go应用程序的配置解决方案,它被设计为在应用程序中工作,并能处理所有类型的配置需求和格式,下面这篇文章主要给大家介绍了关于Go项目配置管理神器之viper的介绍与使用,需要的朋友可以参考下
    2023-02-02

最新评论