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

目录
  • Go依赖管理工具
  • 环境要求
  • 目前版本
  • 安装
  • 验证
  • 初始化
    • 默认初始化
    • 优先从$GOPATH初始化
    • Gopkg.toml
    • Gopkg.lock
  • 常用命令
    • dep ensure
    • dep ensure -add
    • dep ensure -update

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的资料请关注我们其它相关文章!

(0)

相关推荐

  • Go语言包管理工具dep的安装与使用

    什么是dep? dep和go,在一定程度上相当于maven之于Java,composer之于PHP,dep是go语言官方的一个包管理工具. 相比较go get而言,dep可以直接给引入的第三方包一个专门的目录,并且可以专门制定一个配置文件,控制go项目所引入的包,版本以及其他依赖关系. dep这个项目放在golang官方的github中:https://github.com/golang/dep 官方对于dep的解释是:dep is the official experiment, but no

  • Go语言编程学习golang配置golint

    目录 下载golint 打开setting对话框 设置一个快捷键 下载golint 下载golang 的 lint,下载地址:https://github.com/golang/lint mkdir -p $GOPATH/src/golang.org/x/ cd $GOPATH/src/golang.org/x/ git clone https://github.com/golang/lint.git git clone https://github.com/golang/tools.git 到

  • golang使用 gomodule 在公共测试环境管理go的依赖的实例详解

    背景:调试服务最好的方式就是直接上机实践.对在公司的员工来说,在同一套服务上协同开发比在单独的环境上开发,应该会更有感觉.有问题可以一起发现并解决,也能够一同开发需求. 但是,公司的测试机往往是没办法连外网的,而golang 的大部分工程都需要直接从github 上下载依赖,这就导致 依赖文件需要先提前上传到开发机上.那么当开发机上需要运行多个golang 工程的时候,如何共享这些依赖,减少维护依赖库的工作量呢? 这也是需要大家协作完成的- 最终总结:项目采用 go module + vendo

  • golang编程开发使用sort排序示例详解

    golang sort package: https://studygolang.com/articles/3360 sort 操作的对象通常是一个 slice,需要满足三个基本的接口,并且能够使用整数来索引 // A type, typically a collection, that satisfies sort.Interface can be // sorted by the routines in this package. The methods require that the /

  • go自动下载所有的依赖包go module使用详解

    今天在学习dubbo-go的时候,下载了dubbo-go的example,依赖的包太多了,之前都是手动下载某个依赖的包,现在手动一个一个 go get 那太麻烦了.因为我是搞java的,刚开始用go的时候感觉有点奇怪,go代码所依赖的所有的第三方库都放在GOPATH这个目录下面,这就导致了同一个库只能保存一个版本的代码.如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解决?总不能改包名吧,看了一下 dubbo-samples/golang/的代码 发现了有个 go.mod文件,百度一下 g

  • golang开发go包依赖管理godep使用教程

    目录 介绍 安装 包管理使用 godep 拉取依赖 restore 用于开发 检出依赖 save godep 编译运行 build Godeps目录的作用 godep其他命令 介绍 godep是解决包依赖的管理工具,目前最主流的一种,原理是扫描记录版本控制的信息,并在go命令前加壳来做到依赖管理 godep 建议在 golang 1.6 以后使用 godep 依赖 vendor 具体查看 https://stackoverflow.com/questions/37237036/how-shoul

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

    目录 Go依赖管理工具 环境要求 目前版本 安装 验证 初始化 默认初始化 优先从$GOPATH初始化 Gopkg.toml Gopkg.lock 常用命令 dep ensure dep ensure -add dep ensure -update Go依赖管理工具 Go dependency management tool 环境要求 Golang >= 1.9Dep 目前版本 dep: version : devel build date : git hash : go version : g

  • PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解

    hello,小伙伴们大家好,今天给大家介绍的开源项目是Python虚拟环境管理工具,Pipenv是Python官方推荐的包管理工具.可以说,它集成了virtualenv, pip和pyenv三者的功能.其目的旨在集合了所有的包管理工具的长处,如: npm, yarn, composer等的优点. Pipenv试图解决的问题是多方面的: 我们不需要再手动创建虚拟环境,Pipenv会自动为我们创建,它会在某个特定的位置创建一个 virtualenv 环境,然后调用 pipenv shell 命令切换

  • 如何使用PHP依赖管理工具Composer

    前言 别再到处搜PHP类扩展包了,对于现代语言而言,包管理器基本上是标配.Java 有 Maven,Python 有 pip,Ruby 有 gem,Nodejs 有 npm.PHP 的则是 PEAR,不过 PEAR 坑不少: 依赖处理容易出问题 配置非常复杂 难用的命令行接口 好在我们有 Composer,PHP依赖管理的利器.它是开源的,使用起来也很简单,提交自己的包也很容易. 举个例子,平时我们开始的时候如果不是用框架,想要一个验证码,就要先去Gihutb或者其他地方找一个验证码类,然后在项

  • Maven分模块开发与依赖管理和聚合和继承及属性深入详细介绍

    目录 前言 分模块开发 1.1 分模块开发理念 1.按照功能拆分 2.按照模块拆分 1.2 分模块开发实现 2.依赖管理 2.1 依赖传递与冲突问题 2.2 可选依赖和排除依赖 3.聚合和继承 3.1 聚合 3.2 继承 3.3 聚合VS继承 4.属性 4.1 定义父工程属性 4.2 修改依赖的version 5.配置文件加载属性 5.1 父工程定义属性 5.2 jdbc.properties文件中引用属性 5.3 设置maven过滤文件范围 前言 对于复杂庞大的项目,maven的熟练使用可以大

  • Mac下Supervisor进程监控管理工具的安装与配置

    Supervisor是一个类 unix 操作系统下的进程监控管理工具. 安装 Supervisor Supervisor是由 Python 写成,可用 Python 的包安装管理工具 pip(Python Package Index) 直接安装: 复制代码 代码如下: sudo pip install supervisor 配置 Supervisor Supervisor 的配置文件命名为 supervisord.conf,它为 supervisord(Supervisor 的主服务命令) 和

  • nodejs管理工具nvm安装过程详解

    nvm nvm负责管理多个版本的nodejs 安装: https://github.com/coreybutler/nvm-windows/releases 下载nvm-setup.zip,nvm-noinstall.zip 点击nvm-setup.exe安装,一路下一步,这里安装到C:\dev\nvm,安装完成后自动配置了环境变量:NVM_HOME,NVM_SYMLINK,也会添加到Path 验证是否安装成功,打开命令行cmd nvm常用的命令 nvm list 查看当前安装的Node.js所

  • 利用.NET 开发服务器 应用管理工具

    目录 一.背景 1.Anno.Deploy 二.使用方法 1.和Anno集成使用 2.单独使用 3.annoDeploy 配置文件 4.annoDeploy 配置一个守护程序 一.背景 1.Anno.Deploy Anno.Deploy可以和 Anno集成使用,用于部署新的服务.启动服务.停止服务.清理服务.也可以单独使用,用于守护程序. 二.使用方法 1.和Anno集成使用 2.单独使用 annoDeploy status 查看程序状态 annoDeploy start [workingNam

  • MySQL图形化管理工具Navicat安装步骤

    目录 前言 1.为大家整理了安装包 2.安装Navicat,双击Navicat.exe 3.选择Navicat安装目录: 4.完成安装 前言 MySQL 服务器正确安装以后,可以通过命令行管理工具或者图形化的管理工具来操作 MySQL 数据库. MySQL 图形化管理工具极大地方便了数据库的操作与管理,除了系统自带的命令行管理工具之外,常用的图形化管理工具还有 MySQL Workbench.phpMyAdmin.Navicat.MySQLDumper.SQLyog.MySQL ODBC Con

  • Docker可视化ui管理工具Portainer安装及使用解析

    Portainer是一款优秀的Docker图形化管理工具,提供状态显示面板.应用模板快速部署.容器镜像网络数据卷的基本操作(包括上传下载镜像,创建容器等操作).事件日志显示.容器控制台操作.Swarm集群和服务等集中管理和操作.登录用户管理和控制等功能.功能十分全面,安装起来也非常的简单,推荐给大家. 1.下载Portainer镜像 搜索portainer镜像: [root@iZbp13sno1lc2yxlhjc4b3Z /]# docker search portainer NAME DESC

随机推荐