全局开启module管理
# go命令行将会根据当前目录来决定是否启用module功能
# 当前目录在GOPATH/src之外且该目录包含go.mod文件
# 当前文件在包含go.mod文件的目录下面
go env -w GO111MODULE=auto
export GO111MODULE=auto
# 开启
go env -w GO111MODULE=on
export GO111MODULE=on
# 关闭
go env -w GO111MODULE=off
export GO111MODULE=off
设置代理
go env -w GOPROXY=https://goproxy.cn
export GOPROXY=https://goproxy.cn
Goland开启module管理
# goland配置
file->setting->go->go Modules
打勾-Enable Go Modules integration
# 配置 代理,若配置了全局则可忽略
Environment :https://goproxy.cn
如何使用
初始化项目
#进入项目
cd /home/gopath/src/itxj/test
# 初始化go mod
go mod init
# 拉取依赖 依赖包会自动下载到$GOPATH/pkg/mod,多个项目可以共享缓存的mod
go mod download
# 整理依赖关系
go mod tidy
# 缓存到vendor目录 从mod中拷贝到项目的vendor目录下,这样IDE就可以识别了!
go mod vendor
.mod配置
# 初始化后建议编译下拉取所需依赖
# 或执行以下指令整理依赖包
go mod tidy
# 缓存到vendor目录
go mod vendor
# 引用本地其他项目依赖
# 在go.mod文件的required()后添加
replace (
source latest => target latest
)
#如引用本地ew-tool项目,注意引用的项目也需要被go mod管理
replace (
eastwan.com/ew-tool => ../ew-tool
)
# go.mod 提供了module, require、replace和exclude四个命令
module 语句指定包的名字(路径)
require 语句指定的依赖项模块
replace 语句可以替换依赖项模块
exclude 语句可以忽略依赖项模块