go mod 模式和 import

Go Module是Golang 1.11引入的官方依赖管理工具,解决了依赖包版本管理问题。本文详细介绍了go mod是什么,何时使用,如何解读go module模式,以及GO111MODULE环境变量的作用和设置。通过实例展示了如何创建和管理模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

欢迎大家访问我的博客http://blog.ayla1688.cool

原文地址:http://blog.ayla1688.cool/archives/392.html

一、 go mod 是什么

go mod 即 go module 是Golang 1.11 版本引入的官方包(package)依赖管理工具,用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。

module是相关go包的集合,是代码更替和版本控制的单元。模块主要标识为源文件夹下的go.mod文件,此文件目录也成为模块根,其取代了旧的基于src的方法,使用module的模式来指定源文件和导入包。

二、 什么时候会使用了go mod 模式

当我们查看 go 的配置时

go env

2021-03-16T09:21:21.png

GO111MODULE=on

表示使用go module 模式管理软件包, 而不使用GOPATH, 将软件包放到GOPATH的src文件夹下。(当你下载了GIN包时,在src文件夹下看不到github.com文件夹)

三、解读go module 模式

创建gin-test 文件夹, 进入文件夹,执行

go mod init

会出现go.mod 文件,go.mod文件定义了module路径和其他需要在build时引入的模块的版本, 打开go.mod 只会出现红框中的模块名称和go的版本号。
2021-03-16T09:25:23.png

** require ** 的内容是我已经执行了命令** go get -u github.com/gin-gonic/gin **

当我们要使用gin 包的时候, 在 gin-test文件夹下执行命令

go get -u github.com/gin-gonic/gin

go get命令成功拉取到了gin-gonic相关的包,此时再查看go.mod.

2021-03-16T09:28:08.png
可见此时go.mod中多了一些内容,包括一个require指令和内部一些相关依赖。

四、GO111MODULE环境变量

GO111MODULE 是module支持的临时环境变量,其可以设置:off, on, auto。

设置为off时,将使用原始的GOPATH模式,即在gopath中查找依赖。

设置为on,则使用mod功能,不访问gopath。

设置为auto即默认模式,此时go会根据当前目录决定是否使用modules功能,若当前目录在src外切包含go.mod文件,才会启用mod功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值