golang1.11版本以上第三方包管理问题

golang1.11版本以上第三方包管理问题

一、Golang使用过程中go get 下载github项目慢或无法下载

1.windows

打开CMD,执行
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
如果您使用的 Go 版本是 1.13 及以上 (推荐)
	go env -w GO111MODULE=on
	go env -w GOPROXY=https://goproxy.cn,direct

2.Linux或MacOS

$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn

二、Go mod

官方在 v1.11 中加入了 Go Module 作为官方包管理形式,就这样 dep 无奈的结束了使命。
最初的 Go Module 提案的名称叫做 vgo,下面为了介绍简称为 gomod。不过在 v1.11 和 v1.12 的 Go 版本中 gomod 是不能直接使用的。
可以通过 go env 命令返回值的 GOMOD 字段是否为空来判断是否已经开启了 gomod,如果没有开启,可以通过设置环境变量 
export 	GO111MODULE=on 开启

1.使用

首先要把go升级到1.11及以上
升级后,可以设置通过一个环境变量GO111MODULE来激活modules:

GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
GO111MODULE=on,go命令行会使用modules,而一点也不会去GOPATH目录下查找。
GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:当前目录在GOPATH/src之外且该目录包含go.mod文件,或者当前文件在包含go.mod文件的目录下面。
当module功能启用时,GOPATH在项目构建过程中不再担当import的角色,但它仍然存储下载的依赖包,具体位置在$GOPATH/pkg/mod。

在你需要导入第三方包的地方,打开终端输入go mod init 模块名
然后在该文件夹会出现go.mod文件,内容如下
在这里插入图片描述
然后使用go get命令下载、编译和安装工具包
生成go.sum文件,里面记录了安装过程
在这里插入图片描述

2.安装govendor工具

go get github.com/kardianos/govendor

初始化项目的Vendor

govendor init

运行go mod vendor
在这里插入图片描述

参考文献

关于go get 以后下载的包不在src下而在pkg的源头并且不可以import(Goland Modules模块的使用)
解决Golang使用过程中go get 下载github项目慢或无法下载
Golang包管理工具govendor的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言的第三方管理机制经历了三个重要的阶段:GOPATH、Vendor和Go Module。 1. 第一阶段:GOPATH 在Go语言早期版本中,使用全局的GOPATH来管理所有的第三方。GOPATH是一个环境变量,它指定了Go语言的工作目录。当我们使用go get命令下载第三方时,它会被下载到GOPATH目录下的src、pkg和bin目录中。这种方式的缺点是所有的项目都共享同一个GOPATH,当不同项目使用同一个第三方的不同版本时,会出现冲突。 2. 第二阶段:Vendor 为了解决GOPATH的缺点,Go语言引入了Vendor机制。Vendor机制将项目的依赖局部化,每个项目都有自己的Vendor目录,用于存放项目所依赖的第三方。当我们使用go get命令下载第三方时,它会被下载到项目的Vendor目录中。这种方式的缺点是当我们需要更新第三方时,需要手动更新Vendor目录中的。 3. 第三阶段:Go Module Go语言的最新功能Go Module是一种更加先进的第三方管理机制。它将每个项目都看作一个独立的模块,每个模块都有自己的go.mod文件,用于记录项目所依赖的第三方及其版本信息。当我们使用go get命令下载第三方时,它会被下载到项目的go.mod文件中指定的目录中。这种方式的优点是可以自动管理第三方版本,当我们需要更新第三方时,只需要修改go.mod文件中的版本信息即可。 以下是一个使用Go Module管理第三方的例子: 1. 创建一个新的项目目录,并初始化Go Module: ``` mkdir myproject cd myproject go mod init example.com/myproject ``` 2. 在项目中使用第三方: ``` import "github.com/go-redis/redis" ``` 3. 下载第三方: ``` go get github.com/go-redis/redis ``` 4. 查看项目依赖的第三方: ``` go list -m all ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值