当前位置: 首页 > news >正文

【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         解释为什么需要依赖
http://www.lryc.cn/news/278518.html

相关文章:

  • 论文阅读记录SuMa SuMa++
  • 性能分析与调优: Linux 内存观测工具
  • 【ARM 嵌入式 编译系列 3.4 -- 查看所依赖库文件的路径 详细介绍】
  • 分布式锁3: zk实现分布式锁3 使用临时顺序节点+watch监听实现阻塞锁
  • google drive api
  • 3_代理模式(动态代理JDK原生和CGLib)
  • Linux的权限(1)
  • 数据安全保障的具体措施有哪些
  • 浅谈标签及应用场景
  • Linux动态分配IP与正向解析DNS
  • pyspark 使用udf 进行预测,发现只起了一个计算节点
  • mysql触发器的简单使用
  • 全志T113开发板Qt远程调试
  • 学习使用php、js脚本关闭当前页面窗口的方法
  • python 人脸检测与人脸识别
  • RT-Thread: ulog 日志 讲解和使用
  • git ssh key 配置
  • MongoDB聚合:$documents
  • 程序员英语 - 英文会议常用句型
  • UV贴图和展开初学者指南
  • 解密Path环境变量
  • git撤销提交到本地的commit
  • 使用Adobe Acrobat Pro DC给pdf文件填加水印
  • 解决:Unity : Error while downloading Asset Bundle: Couldn‘t move cache data 问题
  • SpringBoot默认配置文件
  • Flink构造宽表实时入库案例介绍
  • 【Kubernetes】K8s 查看 Pod 的状态
  • Linux系统操作命令
  • 大模型学习与实践笔记(五)
  • 100个GEO基因表达芯片或转录组数据处理之GSE126848(003)