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

GOPATH和Go Modules模式

一、GOPATH模式

‌1.1项目结构与依赖管理‌
GOPATH模式下,所有项目必须置于 $GOPATH/src 目录下,依赖的第三方库统一存储在$GOPATH/pkg  $GOPATH/bin 目录‌。这种设计导致不同项目共享同一依赖环境难以管理多版本依赖‌。

1‌.2主要缺点‌
-‌--路径限制‌:项目必须严格遵循GOPATH目录结构,无法灵活存放于任意位置‌。
-‌--版本冲突‌:缺乏版本控制,依赖更新可能导致全局影响‌。(go get ... 不能指定版本)
-‌--依赖冗余‌:所有项目共用同一依赖库,易造成pkg目录臃肿‌。

二、Go Module模式

2.1‌.核心改进‌
Go Module自1.11版本引入,1.14版本成熟,通过go.mod文件实现依赖管理,彻底摆脱GOPATH限制‌。

2‌.2关键特性‌
---独立依赖管理‌:每个项目拥有独立的go.mod文件,记录依赖名称、版本及哈希值(go.sum)-保证项目的完整性,支持项目存放于任意路径‌。
-‌--语义化版本控制‌:支持精确指定依赖版本,通过go get或手动编辑go.mod升级/降级依赖‌。
-‌--本地依赖处理‌:通过replace指令可临时替换远程依赖为本地路径,便于调试‌。

2.2环境变量
---打开Go Module的开关。

---GOPROXY,用于设置Go的模块代理,其作用是使Go在后续拉取模块版本时直接通过镜像网站

---GOSUNDB,用来校验模块版本,保证拉取模块版本数据未经过篡改。如果已经设置了GOPROXY,它就会默认代替成为校验模块版本。

---GONOPROXY/GONOSUNDB/GOPRIVATE,如果当前库是一个私有库,手动去导,不用设置GOPROXY去导入,只设置GONOPROXY一个即可。

2‌.4操作流程‌
---初始化模块‌:go mod init <module-name>创建go.mod文件‌。

-‌-在该项目中创建源文件编写代码,如果源代码中依赖某个库,可以手动down(go get ...),也可以在go run时它会自动down。
---依赖重定向,如果以前的包要更新或弃用使用新的。go mod edit -replace=原包=新包,go mod文件就会发生更改:


http://www.kler.cn/a/576611.html

相关文章:

  • 机器学习常见面试题
  • Kubernetes中的 iptables 规则介绍
  • 一、MySQL备份恢复
  • 【LangChain】Python Web框架推荐
  • 微信小程序引入vant-weapp组件教程
  • 平面机械臂运动学分析
  • echarts中使用geo3d绘制地图添加定位点时给symbol设置图片不显示
  • 深入理解网络通信:从OSI七层模型到TCP/IP协议栈
  • VScode代码格式化插件black失效问题
  • Oracle 数据库基础入门(七):触发器与事务的深度探究
  • 亲测解决笔记本触摸板使用不了Touchpad not working
  • 电脑网络出现问题!简单的几种方法解除电脑飞行模式
  • Spring Boot + MyBatis + MySQL:快速搭建CRUD应用
  • MTK Android12 修改鼠标右键为返回键
  • 记录排查服务器CPU负载过高
  • 洛谷————B2061 整数的个数
  • OpenManus:快速复刻Manus项目的技术路径与实施策略
  • ruoyi-ai开源项目启动
  • 《Operating System Concepts》阅读笔记:p200-p202
  • 【每日学点HarmonyOS Next知识】网页Scheme拉起应用、列表刷新、Web下载文件、根据子元素