原因

之前一直在使用 dep 来管理项目, 最近碰到了两个恶心的事情, 就是安装 ali-oss-sdk 和

go-ethereum 客户端的时候超级慢,lantern 也是半费状态, 时断时连,go-ethereum

等了半个小时都没装上(开灯和关灯都试了), 最后 dep ensure 状态回家, 第二天上班才好。

正好在我的帖子中 appleboy 给我留言说

[可以改用 go module 了] , 然后就试了下, 泪奔, 只能说太好用了。

结果就是我就将所有的项目全部用 module 替换了。

替换

这里记录下过程, 用我的博客来做示例。

这个 go mod 是 go 自带的, 替换起来非常简单, 正好我的 go 环境使用的是最 go1.12 ,

配置起来很容易。

将原本的 dep 的配置删除

# 我已经将代码从 GOPATH 中改到 /www 目录了, 现在可以脱离 GOPATH 了,

# 代码也可以放在任意目录了。

# 如果代码还在 GOPATH 下, 就需要手动添加下面配置, 不叫 go 去自动识别

# export GO111MODULE=on

cd /www/mdblog

# 删除原本的 dep 的配置, 这个我也不纠结了, 原本 dep 对版本的控制就不太好

# 如果对使用的包版本有要求, 稍后可以手动修改 go.mod 将版本改为指定的

rm -rf Gopkg.* vendor

配置 go mod

这个也非常简单,它初始化后会在 $GOPATH/pkg/mod 目录中将所有下载过的依赖包保存,

并且可以保存多个版本, 下次再使用已经下载过的版本依赖时, 不会再去网上下载,

应该算是个本地仓库的感觉吧。

# 初始化

go mod init

# 如果是一个新的项目, 初始化的时候需要指定项目名称, 如下面两个例子

# go mod init demoname

# go mod init github.com/broqiang/mdblog

现在就会在项目目录下生成一个 go.mod 文件, 并且当在当前项目目录下执行 go get ,

go build, go run 等命令的时候, 自动将依赖的包下载, 同时将版本信息写入到

go.mod 中,还会生成一个新的 go.sum 详细的记录

就这么简单的将项目从 dep 转成 module 管理。

代理

换成 module 方式之后可以很方便的来使用代理了,例如可以使用

https://goproxy.io/ 代理, 里面有配置的说明。

Linux 下添加下面变量就可以生效

# Enable the go modules feature

export GO111MODULE=on

# Set the GOPROXY environment variable

export GOPROXY=https://goproxy.io

这里有个坑, 如果使用了私有仓库, 这个代理是找不到的, 正确的方法不清楚, 我的处理办法是:

当项目使用了私有仓库(公司项目全是私有的)时, 临时手动把代理去掉

export GOPROXY="" 。

本作品采用《CC 协议》,转载必须注明作者和本文链接

dep指定版本 go_将 dep 更换为 go mod相关推荐

  1. dep指定版本 go_Go 包管理工具-dep

    dep 是一个 golang 依赖管理工具,需要在 Go 1.7 及更高的版本中使用. 1. 安装 安装 dep 工具的方式有很多种,如果是 mac 电脑的话,只需要如下命令: brew instal ...

  2. dep指定版本 go_Go依赖管理工具 - dep

    Go依赖管理工具 Go dependency management tool 环境要求 Golang >= 1.9 Dep 目前版本: dep: version : devel build da ...

  3. dep指定版本 go_Go 1.12 版本的新特性

    Go 1.12 昨天,Go 官方发布 1.12 版本.本文介绍下 Go 1.12 版本变更的内容. Go 1.12 正式版发布了,距离上个正式发布版 Go 1.11 已经过去半年.跟往常一样,Go 1 ...

  4. ubuntu降低你使用的内核到指定版本

    前言: 今天给大家分享一篇ubuntu更换内核的系列文章之一.为什么要换内核呢,这个对于我们大部分人有一样的原因,例如你要跑的某个包只能在某一个特定的内核版本,或者你升级了你的ubuntu内核导致你的 ...

  5. linux的dep文件是什么意思,DEP 文件扩展名: 它是什么以及如何打开它?

    DEP 疑难解答 打开 DEP 文件的问题 Microsoft Windows 已删除 双击你的 DEP 文件会提示消息 "%%os%% 无法打开 DEP 文件". 通常情况下,这 ...

  6. vscode设置python版本_如何在vscode使用指定版本的python_

    如何在vscode使用指定版本的python_ 用vscode写python的教程2020-09-18 00:13:34人已围观 如何在visual studio上写 python 1. 安装 Pyt ...

  7. 安装指定版本Angular-CLI

    卸载并安装指定版本Angular CLI 卸载之前的版本 npm uninstall -g @angular/cli 清除缓存,确保卸载干净 npm cache clean 检查是否卸载干净 输入ng ...

  8. Ubuntu14.04上编译指定版本的protobuf源码操作步骤

    Google Protobuf的介绍可以参考 http://blog.csdn.net/fengbingchun/article/details/49977903 ,这里介绍在Ubuntu14.04上 ...

  9. CentOS 6.9/7通过yum安装指定版本的JDK/Maven

    说明:通过yum好处其实很多,环境变量不用配置,配置文件放在大家都熟悉的地方,通过rpm -ql xxx可以知道全部文件的地方等等. 一.安装JDK(Oracle JDK 1.8) # wget -- ...

  10. 运维笔记--ubuntu安装指定版本的RabbitMQ

    场景描述: 日常开发or生产环境经常会需要安装指定版本的软件,出于和其他软件的配合兼容性,以及稳定性的考虑. 现在我们的需求是安装指定版本的RabbitMQ,版本号: 操作步骤: 注意事项: 异常处理 ...

最新文章

  1. python中多重if语句用法_python – 在Pandas中使用Apply使用多个if语句的Lambda函数
  2. python的pip安装-pip安装python库的方法总结
  3. 算法导论——动态规划:0-1背包问题(完全解)
  4. 纯CSS实现垂直居中的几种方法
  5. python逻辑题_这道逻辑题 用 Python 代码 如何实现?
  6. JDK 8 新特性 之 default关键字
  7. 第四篇 Entity Framework Plus 之 Batch Operations
  8. 前端学习(538):全屏布局
  9. windows10使用VMvare Pro开启虚拟机提示与Device/Credential Guard不兼容
  10. vc6开发一个抓包软件_开发一个软件要多少钱?app软件开发的费用
  11. SQL Server中的列存储索引
  12. c语言判断字符串是否对称,c语言 判断字符串是否中心对称
  13. 民生服务是“双创”永恒主题 且听“鸿雁旅居网”、“熊猫中医”谈背后心路历程...
  14. 2022年终Java编程技术总结
  15. python opencv 旋转图像大小不变
  16. jzoj2742. 【PKU1625】Censored!
  17. 收藏 40 2 CPD (广告合作方式)
  18. 字体设计中什么是断笔设计啊
  19. excel用条件格式设置隔行变色
  20. matlab中的sig函数,MATLAB——sigmoid传递函数

热门文章

  1. 风变编程python网址_风变编程《Python基础语法+爬虫精进》
  2. 坚果pro2刷回官方_坚果Pro2刷机教程刷TWRP面具详细步骤_软件开发_IT综合服务
  3. 什么是归纳法、数学归纳法
  4. 路飞学城Python-Day1
  5. Eplan P8 2.7 win7/win10 安装(附带资源链接)已更新链接_20210617
  6. 24V电压TVS二极管选型
  7. 计算机usb连接外设后不能启动,usb连接电脑没反应解决方法
  8. 连接计算机硬盘usb,使用移动硬盘时电脑显示:“如果您将此USB设备连接到高速USB2.0端口,可以提升其性能”...
  9. 基金知识整理--基金购买那些事(2)
  10. (6.0系统)安卓神器XPOSED框架无需ROOT安装指南