golang内置包管理工具go mod简明教程

栏目: Go · 发布时间: 6年前

内容简介:go buildin package manager.go mod是go语言内置的包管理工具,集成在go tool中,安装好go就可以使用。要求: go version >= 1.11

go mod

go buildin package manager.

go mod是 go 语言内置的包管理工具,集成在go tool中,安装好go就可以使用。

要求: go version >= 1.11

官方文档: https://tip.golang.org/cmd/go...

环境变量

# 通过环境变量GOPROXY设置代理
export GOPROXY=https://goproxy.io

# go mod功能开关,默认是auto,在gopath中不启用
# 可设置为on强制启用
export GO111MODULE=on

初始化 go mod init

init报错outside gopath no import comments

# 方法一 手动创建go.mod文件, 写入module xxx
echo 'module xxx' > go.mod

# 方法二 main包加入import声明
package main // import "xxx"

go mod download

下载依赖

go mod tidy

同步依赖包,添加需要的,移除多余的

go mod vendor

将依赖包放入vendor

go get 下载/升级依赖

go mod不再下载源码进$GOPATH/src

go mod的下载目录在$GOPATH/pkg/mod,并且是文件权限是只读的 -r--r--r--

# tag必须以v开头 v1.2.3格式
go get -u xxx.com/pkg@2.1.0

vendor 模式

go mod是不推荐使用vendor目录的,而是直接使用source或cache中的包。

在根目录有vendor文件夹时默认使用vendor模式。此模式下依赖只从vendor中找。

https://github.com/golang/go/...

# vendor模式下get报错:go get: disabled by -mod=vendor

# mod有三个取值
# mod can be '', 'readonly', or 'vendor'
# 两种赋值方式都可以
-mod=''
-mod ''

replace

让原本依赖的 github.com/repo/pkg 包,实际使用 github.com/your-fork/pkg@version。

go mod edit -replace github.com/repo/pkg=github.com/your-fork/pkg@version

清缓存

go clean -modcache

go.mod & go.sum

go.mod:依赖列表和版本约束。

go.sum:记录module文件hash值,用于安全校验。

最佳实践

go mod不推荐使用vendor,不要将vendor提交到版本控制。

提交go.mod,可以忽略go.sum,因为会根据校验sum跨平台可能报错。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

代码阅读方法与实践

代码阅读方法与实践

斯平内利斯 / 赵学良 / 清华大学出版社 / 2004-03-01 / 45.00元

代码阅读有自身的一套技能,重要的是能够确定什么时候使用哪项技术。本书中,作者使用600多个现实的例子,向读者展示如何区分好的(和坏的)代码,如何阅读,应该注意什么,以及如何使用这些知识改进自己的代码。养成阅读高品质代码的习惯,可以提高编写代码的能力。 阅读代码是程序员的基本技能,同时也是软件开发、维护、演进、审查和重用过程中不可或缺的组成部分。本书首次将阅读代码作为一项独立课题......一起来看看 《代码阅读方法与实践》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具