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:指定依赖的代替版本

 

posted @ 2024-11-21 13:35  风乐  阅读(2)  评论(0编辑  收藏  举报