网站首页 » Golang,Golang基本知识 » [Golang基本知识] 2、Golang的包管理 go mod

[Golang基本知识] 2、Golang的包管理 go mod

April 27, 2021 Golang,Golang基本知识

强烈要求使用golang自带的包依赖管理工具 go mod,以下进入正题


go mod 介绍

go modgo moduleGolang 1.11 版本引入的官方包(package)依赖管理工具,用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。
module是相关go包的集合,是代码更替和版本控制的单元。模块主要标识为源文件夹下的go.mod文件,此文件目录也成为模块根,其取代了旧的基于src的方法,使用module的模式来指定源文件和导入包。

go mod 模式开启

查看go的配置

go env

GO111MODULE=on # GO111MODULE=on 表示开启了go mod 模式
GOPROXY="https://goproxy.cn,direct"  设置代理方式为国内

使用 go mod 模式引用包时,当你下载gin包,放到GOPATH下的src文件夹无法引用.

GO111MODULE 是module支持的临时环境变量,其可以设置:off, on, auto

设置为off时,将使用原始的GOPATH模式,即在gopath中查找依赖。

设置为on,则使用mod功能,不访问gopath

设置为auto即默认模式,此时go会根据当前目录决定是否使用modules功能,若当前目录在src外切包含go.mod文件,才会启用mod功能。

go mod 使用

通过 go help mod 得知所有的命令

go help mod 

结果

Usage:

        go mod <command> [arguments]

The commands are:

        download    download modules to local cache        下载依赖包
        edit        edit go.mod from tools or scripts        编辑go.mod
        graph       print module requirement graph            打印模块依赖图
        init        initialize new module in current directory    在当前目录初始化mod
        tidy        add missing and remove unused modules        拉取缺少的模块,移除不用的模块
        vendor      make vendored copy of dependencies            将依赖复制到vendor下
        verify      verify dependencies have expected content        验证依赖是否正确
        why         explain why packages or modules are needed        解释为什么需要依赖

Use "go help mod <command>" for more information about a command.

1.创建项目文件夹

2.进入文件夹执行 go mod init

项目文件夹中出现go.mod 文件,go.mod文件定义了module路径和其他需要在build时引入的模块的版本, 打开go.mod 只会出现红框中的模块名称和go的版本号。

3.安装其他包。当我们要在项目中使用gin包时,在项目文件夹根目录执行命令go get -u github.com/gin-gonic/gin. go get命令成功拉取到了gin-gonic相关的包,此时再查看go.mod文件.

go.mod文件中多了一些内容,包括一个require 指令和内部一些相关依赖
添加新评论