Go语言模块管理(14)| Go主题月

764 阅读3分钟

GO环境变量

在Go语言中需要引入很多包,跟其他语言一样。来巩固一下Go语言包管理的知识,首先要说一下安装的环境变量。这里只说Win10的安装,在Win10上安装Go语言过后,安装完成后go会自动设置两个环境变量GOROOT和GOPATH,如果删除了第二次安装就需要配置环境变量。
有三个环境变量,GOROOT、GOPATH 和 GOBIN。
GOROOT:Go语言安装的目录
GOPATH:自己定义的工作目录,工作区目录,可以有多个
GOBIN:GO 程序生成的可执行文件的路径

初次安装完成后可以使用go version看下前两个环境变量安装好了没: image.png

接下来使用go env查看相关的环境变量:

image.png

image.png

GOAPATH

GOBIN可以暂时不用管,它现在并不重要,需要注意的是GOPATH,定义了一个工作区,设置好这个工作区后,我们一般会在这个工作区下面再新建三个文件夹,分别为:src,pkg,bin。
src:存放go源码文件,自己写的文件;
pkg:用于存放编译后生成的归档文件;
bin:用来存放编译后的可执行文件;

微信截图_20210413235428.png

GO Modules

但是使用GOPATH这个方法进行项目开发有些缺点:无法保证多个项目在一个工作区下面有的不同版本号的需求。没有版本控制的概念,不能指定当前项目的第三方包版本号,所以也就有了在Go1.13+的Go Module工作模式。
使用Go Modules 方式创建一个项目不建议创建在GoPATH/src下面,需要与GOPATH方式分开 使用Go mod -w GO111MODULE=on 打开Go Modules模式支持。auto 模式下只要项目包含了go.mod文件就会启用Go Modeules。

image.png 打开这个模式之后GOPATH 是没有用的,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。打开这个模式过后,再新建一个项目后需要使用go mod init 模块名在项目根目录下生成go.mod文件,里面会记录依赖包的名字版本信息,不用管GOPATH了。

除了设置GO111MODULE还需要设置一下GOPROXY,因为某些原因在国内很多包都下载不下来,跟其他语言一样,这时候就需要切换下载GO包的源地址(下载源),使用go env -w GOPROXY=https://goproxy.cn,direct,然后使用go mod download *****就会从国内镜像站下载到本地。

image.png

Go mod

可以看下go mod 其他常用指令:

    1. go mod tidy 整理项目依赖包删掉多余的下载没有的
    1. go mod vendor 生成vendor目录,导入依赖,会把依赖包转移到vendor文件夹下,使用Git时候记得在 .gitignore文件中忽略这个文件夹
    1. go clean -modcache 清理mod 依赖
    1. go mod verify 验证依赖是否正确
    1. go get github.com/项目地址/包名@version 更新到某个版本 还可以使用 go mod help查看go mod命令帮助。

image.png 下篇说说GO语言包管理的知识。

image.png