GO Mod在项目中的使用

1.go mod开启

1. 开启go mod

  go Modules是Go 1.11中新增的实验性功能,是一种新型的包管理工具,可以方便的包版本化管理。使用go mod,首先要把go升级到1.11版本以上。然后环境变量中需要设定好GOPATH以及GOROOT
随后可以通过一个命令或设置环境变量GO111MODULE来激活go modules:

#linux环境中,直接运行一下命令开启go mod.
#windos环境中进入powershell
go env -w GO111MODULE=on
#也可以直接设置环境变量
export GO111MODULE=on

  当GO111MODULE=off时,go命令就不支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。

  当module功能启用时,第三方依赖安装包下载的具体位置在$GOPATH/pkg/mod,可以使用go get 命令下载。

go get -u -v github.com/sirupsen/logrus

2. 开启go的中国下载代理

  在中国很多的go依赖模块无法下载,使用。通过切换中国的GO代理,进行go编码,其中存有大多GO编码模块。可以点击进入查看,https://goproxy.cn/

go env -w GOPROXY=https://goproxy.cn,direct

2.项目中使用go mod

gopath:
  - src
    - project-1
      - module1
      - vendor
    - project-2
  - pkg

  假设目录关系如上。在project-1项目中,使用go mod.

//进入项目project-1并初始化go mod管理工具
cd project-1
go mod init project-1

//若项目中有自定义子模块module1,则也需要进入该目录go mod管理该模块
cd module1
go mod init mod1

  然后再project-1项目的根目录生成的go.mod进行编写,添加replace代码

module project-1
//这个./module1路径需要根据实际路径关系修改
replace module1 => ./module1
go 1.13
require (...)

  最后通过 project-1入口函数,引用包module1即可

import "module1"

3.go mod 常用命令

	go mod download	//下载依赖包
	go mod edit		//工具或脚本编辑go.mod
	go mod graph		//打印模块依赖图
	go mod init		//在当前目录初始化mod
	go mod tidy		//拉取缺少的模块,移除不用的模块。
	go mod vendor 	//将依赖复制到vendor下
	go mod verify	  //验证依赖是否正确
	go mod why 		//解释为什么需要依赖
	go list -m -json all	//依赖详情

源链接:https://turbock79.cn/?p=1460

你可能感兴趣的:(Golang)