【GO语言依赖】Go语言依赖管理简述

在运行环境中,遭遇报错,显示找不到函数
在这里插入图片描述
经过研究后发现需要进行依赖管理,进行如下操作后解决:

起源

最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,就需要进行依赖管理

go module

go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。

GO MODULE

要启用go module支持首先要设置环境变量GO MODULE,通过它可以开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是auto。

GO MODULE=off禁用模块支持,编译时会从GOPATH和vendor文件夹中查找包。
GO MODULE=on启用模块支持,编译时会忽略GOPATH和vendor文件夹,只根据 go.mod下载依赖。
GO MODULE=auto,当项目在$GOPATH/src外且项目根目录有go.mod文件时,开启模块支持。

操作如下:

# 临时开启 Go modules 功能
export GO111MODULE=on
# 永久开启 Go modules 功能
go env -w GO111MODULE=on

# 设置 Go 的国内代理,方便下载第三方包
go env -w GOPROXY=https://goproxy.cn,direct

简单来说,设置GO MODULE=on之后就可以使用go module了,以后就没有必要在GOPATH中创建项目了,并且还能够很好的管理项目依赖的第三方包信息。

使用 go module 管理依赖后会在项目根目录下生成两个文件go.mod和go.sum。

设置后可以查看确认:

wohu@wohu-dev:~$ go env
GO111MODULE="on"
.....
GOPROXY="https://goproxy.cn,direct"
.....
wohu@wohu-dev:~$

go mod

常见go mod命令

go mod download    下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)
go mod edit        编辑go.mod文件
go mod graph       打印模块依赖图
go mod init        初始化当前文件夹, 创建go.mod文件
go mod tidy        增加缺少的module,删除无用的module
go mod vendor      将依赖复制到vendor下
go mod verify      校验依赖
go mod why         解释为什么需要依赖

相关推荐

  1. Golang基础8-go语言依赖管理

    2024-01-12 09:34:01       11 阅读
  2. go 语言实现依赖注入

    2024-01-12 09:34:01       34 阅读
  3. Go依赖管理

    2024-01-12 09:34:01       27 阅读
  4. go依赖倒置demo

    2024-01-12 09:34:01       38 阅读
  5. Go教程-Go语言简介

    2024-01-12 09:34:01       39 阅读
  6. 依赖注入与控制反转:优化Go语言REST API客户端

    2024-01-12 09:34:01       18 阅读
  7. Go语言中,公司gitlab私有仓库依赖拉取配置

    2024-01-12 09:34:01       12 阅读

最近更新

  1. 常见加密算法介绍

    2024-01-12 09:34:01       1 阅读
  2. Unity3D批量修改名称工具

    2024-01-12 09:34:01       1 阅读
  3. Istio在微服务中释放服务网格的力量

    2024-01-12 09:34:01       1 阅读
  4. js 回调函数如何追加参数

    2024-01-12 09:34:01       1 阅读
  5. Python文本数据可视化之“词云”图

    2024-01-12 09:34:01       1 阅读
  6. R语言学习笔记4-数据结构-矩阵

    2024-01-12 09:34:01       1 阅读
  7. 大模型日报 2024-07-09

    2024-01-12 09:34:01       1 阅读

热门阅读

  1. 【Vue技巧】Vue2和Vue3组件上使用v-model的实现原理

    2024-01-12 09:34:01       39 阅读
  2. Python从入门到精通秘籍三

    2024-01-12 09:34:01       41 阅读
  3. C++ 类访问修饰符

    2024-01-12 09:34:01       26 阅读
  4. C++ 类构造函数 & 析构函数

    2024-01-12 09:34:01       41 阅读
  5. 基于STM32设计的智能饮水机(微信小程序)

    2024-01-12 09:34:01       38 阅读
  6. jw01-v2.2三合一传感器使用方法:esp8266,arduino

    2024-01-12 09:34:01       31 阅读
  7. Go 语言 panic 和 recover 详解

    2024-01-12 09:34:01       27 阅读
  8. Linux常用命令

    2024-01-12 09:34:01       28 阅读