golang基础(5)

简介: golang基础

golang基础(4)https://developer.aliyun.com/article/1530658

2. 依赖管理

背景

2.1 依赖管理演进

2.1.1 GOPath

2.1.2 GO Vendor
  • 项目目录下曾江vender文件 ,所有依赖包副本形式放在$ProjectRoot/vender
  • 依赖寻址方式: vendor => GOPATH

2.1.3 GO Mode
  • 通过go.mod文件管理依赖包版本
  • 通过go get/go mod指令工具管理依赖包

2.2 配置管理三要素

1.配置文件,描述依赖 go.mod

2.中心仓库管理依赖库 Proxy

3.本地工具 go get/ mod

2.3

2.3.1 依赖管理配置 - go mod

2.3.2 依赖配置 -version

语义化版本第一个是大版本,之间是可以不兼容的,第二个是小版本,在兼容的情况下实现更新,第三个是修复bug

2.3.3依赖配置-indirect

2.3.4 依赖配置 -incompatible

2.3.5 版本依赖 依赖图

他会选择一个最低的兼容版本

2.3.6 依赖分发 - 回源

缺点

  • 无法保证构建的稳定性
    增加/修改/删除软件版本
  • 无法保证依赖的可用性
    删除软件
  • 增加第三方压力
    代码托管平台负载问题
2.3.7依赖分发 - proxy

工具 goget

工具 gomode

相关文章
|
存储 Ubuntu 网络协议
|
Java 编译器 Go
104.【GoLang基础】(二)
104.【GoLang基础】
111 0
|
缓存 并行计算 Go
104.【GoLang基础】(四)
104.【GoLang基础】
131 0
|
监控 安全 Go
|
存储 网络协议 数据中心
服务注册中心Consul
服务注册中心Consul
408 1
|
存储 网络协议 Linux
在Linux中,如何通过syslog进行远程日志转发?
在Linux中,如何通过syslog进行远程日志转发?
|
Java API Maven
使用Java Libvirt API 访问虚拟机信息
使用Java Libvirt API 访问虚拟机信息
315 1
|
存储 自然语言处理 关系型数据库
Springboot2.x整合ElasticSearch7.x实战(二)
Springboot2.x整合ElasticSearch7.x实战(二)
221 0
|
IDE Java Go
Golang
【6月更文挑战第26天】
185 1
|
SQL 安全 网络协议
网络端口号和协议号(大全)
网络端口号和协议号(大全)
5519 2