1、go mod和GOPATH的区别和使用(gin安装方式一)
- go1.11版本前所有在项目都会放至到GOROOT或GOPATH的src目录下才能运行,该版本后引入了go module进行包管理,任何目录下都可以执行go文件,GOROOT和GOPATH只用于存放内置库或第三方库;
- 但是在使用go mod前要先配置好GOROOT和GOPATH;
1.1 go mod使用
1. 配置go env,配置使用MODULE管理,GOPROXY改为国内七牛云的镜像源;
各操作系统可以有自己的配置方法,windows可以用set,linux和mac可以用export;通用的方法可以用go env -w
GO111MODULE="on"
GOPROXY="https://goproxy.io,direct"
2. 初始化
(1) 随便在新建一个目录
(2) go mod init xxxx(这个是项目名可以随便起),会生成go.mod文件,go.mod文件的目录被称为模块根,定义了它所在在目录为一个模块;
(3)创建一个main.go文件,写入如下代码:这是gin的一个基本项目,在网页打印hello gin;
package main
import "github.com/gin-gonic/gin"
func main() {
// router := gin.Default()
router := gin.New()
router.GET("/", func(ctx *gin.Context) {
ctx.String(200, "hello gin")
})
router.Run(":9000")
}
(4)go mod tidy :检测依赖,将依赖写入go.mod,也会生成go.sum记录所依赖在项目在版本在锁定;
(5)go mod download:下载依赖至本地(GOPATH下),而不使用go get ;
(6)go mod vendor:将刚刚下载在依赖转移到vendor(自动新建)目录下,这样是可以使用了;
(7)使用go run main.go:启动程序,建议在终端启动;
(8)访问该页
(9)如果要新增使用某个包,只要在项目里import这个包,然后再更新依赖是可以;
(10)go mod常用命令
go mod init # 初始化go.mod
go mod tidy # 更新依赖文件
go mod download # 下载依赖
go mod vendor # 将依赖移到本地的vendor文件
go mod edit # 手动修改依赖文件
go mod graph # 打印依赖图
go mod verify # 校验依赖
go mod why # 解释为什么需要包和模块
2、gin安装方式二(在GOPATH下安装成功)
- go环境配置好,包括GOROOT,GOPATH
- 修改go env(GO111MODULE="on", GOPROXY="https://goproxy.io,direct"),linux可以使用环境变量修改,或者使用go env -w的方式解决
- 初始化go mod :go mod init xx_gin(名字随便起)
- 安装gin:go get -u github.com/gin-gonic/gin,会下载至GOPATH的pkg目录下
- 使用go run xxx.go启动,不要使用vscode的run
- 如果还不行,go mod tidy更新一下mod
3、go mod 如何实现导入本地包
1. GO111MODULE="auto":该字段设置为auto
2. 在新project先初始化go mod init 模块名
3. 函数名的首字母大写,表示是公有方法
4、使用 import "模块名/包名" 的方式导入
5、使用的包下方法: 包名.函数名() 进行调用这个本地包的方法