Go的依赖管理
Go依赖管理
Go的依赖管理经历了3个阶段,由于历史原因,目前普遍使用的是Go mod做依赖管理
但是了解过去的依赖管理的优缺点,便于我们理解Go mod的设计
第一阶段:
Go Path阶段:使用简单,但是由于Go Path的依赖管理只是根据路径来做区分,无法做多版本管理
因此多个项目如果依赖同一个软件的多个版本,那么Go Path就无能为力了,多个项目无法共享同一个Go Path
第二阶段:
Vendor阶段:解决了Go Path的项目依赖隔离,项目编译时,优先从vendor目录寻找依赖,找不到才从Go Path中寻找,且不便于依赖升级,仍未解多项目共享Go Path
第三阶段:
Go Module阶段:解决了上几个时代的遗留问题,并提出几个新概念
仓库:一个或多个module的集合
module:一组package的集合
package:一个或多个源文件的集合
module的版本号遵循语义化规范,即版本号有v(majior).(minor).(patch),如v0.1.0,v1.2.3格式等
且官方提供了命令go mod来操控和管理Go Module,类似maven提供了mvn操控命令
Go.mod文件
go.mod是go项目的模块文件,用于定义模块名,依赖项,版本等
其中字段含义如下:
module:定义当前项目的模块路径
go:定义go使用的版本
require:列出当前模块的依赖及其版本
replace:指定依赖的代替版本
分类:
开发 / Go语言开发笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix