Go mod包管理

介绍

Go1.11版本(已上版本)支持module功能,用于源代码更替和版本控制。可替代对GOPATH的依赖,不必在$GOPATH/src下新建项目,而是任意包含go.mod的目录都可以是工程目录。注意:$GOPATH目录还有要配置的。

使用

1.现在在vagrant/www/go/下面创建test项目目录(ps:GOPATH="/vagrant/go",可以用go env查看)

mkdir test

2.进入test执行,go mod init [模块名](ps:[模块名]必须跟项目同名)

go mod init test  

看到提示 “go: creating new go.mod: module test”  说明 go mod 初始化成功了,会在当前目录下生成一个 go.mod 文件

包含go.mod文件的目录也被称为模块根,也就是说,go.mod 文件的出现定义了它所在的目录为一个模块

3.引入项目或者创建main.go

 这里我引入的是一个项目,注意的main.go文件,其他的不要

4.go mod tidy -v // 添加确实模块

 添加完成可以去GOPATH/pkg看到有一个mod文件夹,里面就是刚刚下载的模块

5.go mod vendor -v // 当前目录下生产vendor目录,包含所有依赖包

 ll可以看到test项目项目多了一个vendor文件夹

同时go.mod和go.sum多了一下

 

 

6.运行项目

go  run main.co

go mod命令

go mod download              // 下载依赖到本地缓存,查看GOCACHE缓存地址
go mod graph                    //把模块之间的依赖图显示出来
go mod init [模块名]           // 当前目录初始化和创建`go.mod`文件,最好是项目名
go mod tidy -v                    // 添加确实模块和移除不必要的模块
go mod vendor -v              // 当前目录下生产vendor目录,包含所有依赖包
go mod verify                    // 检查当前模块的依赖是否已经存储在本地下载的源代码缓存中
go build -mod=vendor      // 依赖module下的vendor生成可执行文件

go get rsc.io/sampler       //更新稳定版依赖

GO111MODULE环境变量

GO111MODULE=off      // 不用module功能,GOPATH模式寻找依赖包
GO111MODULE=on      // module模式,build时找module下的vendor,GOPATH承担下载依赖包到GOPATH/pkg/mod
GO111MODULE=auto   // 根据当前目录是否包含go.mod来判断

posted @ 2020-01-11 11:15  晴箜万里  阅读(2086)  评论(0编辑  收藏  举报