原创

go.mod文件详解

配置文件go.mod内容如下:

//表示本项目的module模块名称是什么,别的模块依赖此模块的时候写这个名字
module test
//表示使用GoSDK的哪个版本
go 1.14
//require中声明的是需要依赖的包和包版本号
require (
	//格式如下: 需要import导入的模块名  版本号
	//		   需要import导入的模块名2  版本号2	
	//			...					...
    github.com/gin-contrib/sessions v0.0.1
    github.com/gin-contrib/sse v0.1.0 // indirect
    github.com/gin-gonic/gin v1.4.0
    github.com/go-redis/redis v6.15.6+incompatible
    github.com/go-sql-driver/mysql v1.4.1
    github.com/golang/protobuf v1.3.2 // indirect
    github.com/jinzhu/gorm v1.9.11
    github.com/json-iterator/go v1.1.7 // indirect
    github.com/kr/pretty v0.1.0 // indirect
    github.com/mattn/go-isatty v0.0.10 // indirect
    github.com/sirupsen/logrus v1.2.0
    github.com/ugorji/go v1.1.7 // indirect
)
//replace写法如下,表示如果项目中有引入前面的依赖模块,改为引用=>后面的依赖模块,
//可以用于golang的国外地址访问改为指向国内的github地址,当然你在上面require直接写github就不用在这里repalce了
replace (
	golang.org/x/crypto v0.0.0-20190313024323-a1f597ede03a => github.com/golang/crypto v0.0.0-20190313024323-a1f597ede03a
)
//忽略依赖模块,表示在该项目中无论如何都使用不了该依赖模块,可以用于限制使用某个有bug版本的模块
exclude(
    github.com/ugorji/go v1.1.7 
)

注:go.mod 提供了module, require、replace和exclude四个命令

module语句指定包的名字(路径)
require语句指定的依赖项模块
replace语句可以替换依赖项模块
exclude语句可以忽略依赖项模块

上面github.com/ugorji/go v1.1.7 // indirect 有 indirect和非indirect

indirect代表此模块是间接引用的,中间隔了几个项目

这个不用特殊写,可以注释写便于识别和开发

本文链接地址:http://www.ysxbohui.com/article/230

正文到此结束