菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
39
0

go modules 初体验

原创
05/13 14:22
阅读数 993

之前有知道dep,vendor,glide等go的包管理方案,但没怎么用起来,modules是官方推出,看势头在后面的版本中也会持续改进,值得尝试。

modules

modules在go的1.11版本中加入,并在Go 1.13中对模块进行了重大改进和更改。

开启模块

1.13版本前请务必开启模块

export GO111MODULE=auto

初始化

在你的项目目录中执行:

go mod init 13sai/game

会生成go.mod

module 13sai/game

go 1.12

然后你可以尽情编写你的项目代码,在你每次go get的时候,modules也会将你的安装的package加入go.mod

module 13sai/game

go 1.12

require github.com/gin-gonic/gin v1.5.0 // indirect

当然,你也可以像我一样,先去写代码,不去初始化modules,写完代码之后,初始化,然后执行:

go run main.go

go mod会自行写入你项目代码中的包。

Goproxy 中国

当然,如果你没有翻墙,也没有使用国内镜像,极有可能很多包都下载失败,这时候你可以使用
Goproxy 中国

使用方法如下:

Go 1.13 及以上(推荐)
打开你的终端并执行:

$ go env -w GOPROXY=https://goproxy.cn,direct

完成。

macOS 或 Linux
打开你的终端并执行:

$ export GOPROXY=https://goproxy.cn

或者

$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile && source ~/.profile

完成。

Windows
打开你的 PowerShell 并执行:

C:\> $env:GOPROXY = "https://goproxy.cn"

或者

1. 打开“开始”并搜索“env”
2. 选择“编辑系统环境变量”
3. 点击“环境变量…”按钮
4. 在“<你的用户名> 的用户变量”章节下(上半部分)
5. 点击“新建…”按钮
6. 选择“变量名”输入框并输入“GOPROXY”
7. 选择“变量值”输入框并输入“https://goproxy.cn”
8. 点击“确定”按钮

完成。

本地包处理

本地包使用相对路径引入时,在使用go mod会有问题,这时可以使用这样的方式引入(local.com/13sai/game),可自行DIY。

然后执行:

$ go mod edit -require=local.com/13sai/game@v1.0.0
$ go mod edit -replace=local.com/13sai/game@v1.0.0=$PWD

vendor备份

go mod vendor

可以将modules下载到本地vendor目录,其中也包含上面的本地包。

其他

go mod tidy //整理模块(拉取缺少的模块,移除不用的模块)
go mod download//下载依赖包到本地缓存
go mod graph //打印现有依赖结构
go mod verify //校验依赖
go mod why //解释为什么需要此模块

Modules的wiki

自己也是刚开始使用golang的modules去管理项目中的包,如有错误,欢迎指正交流。

发表评论

0/200
39 点赞
0 评论
收藏
为你推荐 换一批