dep quick start

[TOC]

概述

注意事项: 由于golang.org在墙外,dep 相关的操作会获取远程项目的状态,在shell执行时,必须确定了你的shell环境已经科学上网了。

go的包管理还没有标准的工具,从go package manager summary出发,了解了

  • dep 官方还在实验阶段
  • manual 直接操作vendor目录
  • Godep 早期的来包管工具,广泛使用
  • Glide 晚于Godep功能较全面,除官方的dep应该是最受欢迎的包管理工具
  • 其他start较少,暂时没调研

总结:dep赞最高,使用情况未知。Glide & Godep 已经发表声明,尽量将现有的工程迁移到dep,不再提供新功能,还提供迁移文档。趋势是dep将会广泛使用

roadmap

  1. overview: https://golang.github.io/dep/docs/introduction.html
  2. glossary: https://golang.github.io/dep/docs/glossary.html
  3. install: https://golang.github.io/dep/docs/installation.html
  4. create demo project: https://golang.github.io/dep/docs/new-project.html
  5. basic usages: dep ensure: https://golang.github.io/dep/docs/daily-dep.html
  6. 原理:https://golang.github.io/dep/docs/ensure-mechanics.html

dep ensure

dep ensure 保证project处于sync状态,相关的操作会影响Gopkg.lock, Gopkg.toml 和 vendor/ 目录,其中Gopkg.lock和vendor只读不可写。

常用的操作流程

dep ensure -add xxx 增加依赖

增加依赖后,如果不import,再次执行dep ensure时会删除依赖。两种方式增加方式:

  1. 第一种:
    • dep ensure -add github.com/pkg/errors github.com/foo/bar
    • dep ensure -add aaa bbb
  2. 第二种(不要使用,官方说最好不要这么用,就不要用,省得还要解决产生的问题):
    1. 代码中import相关的package
    2. dep ensure, 该操作不会增加依赖的meta到Gopkg.toml中

dep ensure -update xxx 更新依赖

  • update single package: dep ensure -update github.com/foo/bar
  • update all packages: dep ensure -update (不要这么用,影响太大,误操作的可能性很大,逆向的成本很大)

移除依赖

  1. 删除相关的import语句
  2. 删除Gopkg.toml中的依赖
  3. dep ensure

触发dep ensure命令的场景

  • 加依赖(第一次增加特定package的依赖),移除依赖(最后一次删除特定package的依赖)
  • 代码中import未在vendor中的依赖
  • 修改Gopkg.toml
  • 无聊,没事也可以运行

原理

相关的概念:

  • project src: 代码
  • Gopkg.toml: 依赖的metadata
  • Gopkg.lock: 依赖图
  • vendor/: 依赖的代码
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,347评论 19 139
  • 1 Webpack 1.1 概念简介 1.1.1 WebPack是什么 1、一个打包工具 2、一个模块加载工具 3...
    Kevin_Junbaozi阅读 11,766评论 0 16
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,254评论 25 709
  • 关于破窗理论(这个不同于编程里面的破窗理论)恰恰是因为现在玻璃碎了,他也就失去了亮相的机会。人们过两天就会看到多出...
    0xf阅读 4,500评论 0 1
  • 今天好几个人谈到了苍井空,完全不懂为什么一个日本女演员会被追捧到这么一个高度,尤其是杜蕾斯又强行加戏,送祝福什么的...
    囚宿梵船阅读 884评论 0 0