go module

简介

go1.11发布后,出现了一个实验中的go module,项目的运行可以不再依赖 GOPATH,项目目录可以放在任何的目录下面,所有项目依赖的 packages 全部下载到 $GOPATH/pkg/mod/cache 下 or $GOROOT/pkg/mod/cache 下面统一管理。

使用示例:https://github.com/fionawp/ip_location_finder

开启 go module(模块)

通过环境变量 GO111MODULE 来控制是否使用 go mod 方式来管理包。 GO111MODULE 可以设置为三个字符串值之一:off,on或auto(默认值)。

off 不使用模块,使用 “ GOPATH 模式”。

on 使用模块,只根据 go.mod 下载依赖。

auto  同时满足下面两个条件开启模块模式
1) 仅当当前目录位于 $GOPATH/src 之外
2) 并且其本身包含 go.mod 文件或位于包含 go.mod 文件的目录下时

初始化

go mod init github.com/aa/bb (初始化模块的名字)

执行完该命令之后,会生成两个文件 go.mod 和 go.sum。go.mod 文件用来定义当前模块的依赖和依赖版本,也可以排除依赖和替换依赖。module github.com/aa/bb 会放在 go.mod 文件的第一行,以 github.com/aa/bb 开头的包会从项目内部查找而不是从远程拉取。go.sum 则是描述依赖树锁定。模块(go module)根目录和其子目录的所有包构成模块,在根目录下存在 go.mod 文件,子目录会向着父目录、爷目录一直找到 go.mod 文件。
模块路径指模块根目录的导入路径,也是其他子目录导入路径的前缀。

其他常用的 go mod 命令

edit        编辑go.mod文件
tidy        增加丢失的module,去掉未用的module
verify      校验依赖

注意:当不知道包的版本时,go mod edit -require=golang.org/x/net@v0.0.0, 不能用 latest 代替 v0.0.0

配置 GoLand

默认编辑器是在 GOPATH 寻找依赖包的,需要在编辑器配置开启 go module,关闭 GOPATH 才会按照 go module 的规则寻找依赖包。
在这里插入图片描述
不使用 GOPATH
在这里插入图片描述
开启 go mod
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值