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

Go Modules 使用

文章参考https://blog.csdn.net/wohu1104/article/details/110505489

不使用Go Modules,所有的依赖包都是存放在 GOPATH /pkg下,没有版本控制。如果 package 没有做到完全的向前兼容,会导致多个项目无法运行(包版本需求不同)。

于是推出了go mod 管理依赖
Go 1.11 版本推出 modules 机制,简称 mod,更加易于管理项目中所需要的模块。模块是存储在文件树中的 Go 包的集合,其根目录中包含 go.mod 文件。 go.mod 文件定义了模块的模块路径,它也是用于根目录的导入路径,以及它的依赖性要求。每个依赖性要求都被写为模块路径和特定语义版本。
在这里插入图片描述go.mod文件中声明某一个项目的依赖版本,首次运行时下载到mod/下,以后直接按版本调用
从 Go 1.11 开始,Go 允许在 $GOPATH/src 外的任何目录下使用 go.mod 创建项目(以前所有项目都在src下)。在 $GOPATH/src 中,为了兼容性,Go 命令仍然在旧的 GOPATH 模式下运行。从 Go 1.13 开始,go.mod模式将成为默认模式。

使用 GO111MODULE
启用:GO111MODULE=on
Go 命令行工具只使用 Go Modules,GOPATH不再作为导入目录,但它还是会把下载的依赖储存在 GOPATH/pkg/mod 中,也会把 goinstall的结果放在 GOPATH/bin 中,只移除了 GOPATH/src/。

关闭:GO111MODULE=off
Go 命令行工具从不使用 Go Modules。相反,它查找 vendor 目录和 GOPATH/pkg 以查找依赖项。

本文以 Go 1.13.6 为基础详细说明 Go modules 的使用。

# 临时开启 Go modules 功能
export GO111MODULE=on
# 永久开启 Go modules 功能
go env -w GO111MODULE=on# 设置 Go 的国内代理,方便下载第三方包
go env -w GOPROXY=https://goproxy.cn,direct

在这里插入图片描述

相关文章:

  • 使用system verilog进行流水灯和VGA打印字符
  • CentOS 7基础操作01_安装CentOS 7操作系统
  • 【C语言】动态内存管理
  • 外星人Alienware m16R1 原厂Windows11系统 oem系统
  • 16、matlab求导、求偏导、求定积分、不定积分、数值积分和数值二重积分
  • 数据挖掘 | 实验三 决策树分类算法
  • 深入理解Redis事务、事务异常、乐观锁、管道
  • 解决odbc 数据源创建之后删除失败问题
  • 抄袭瓜!斯坦福作者已删库跑路!面壁和刘知远老师的最新回应
  • 师彼长技以助己(3)逻辑思维
  • 插入排序(直接插入排序与希尔排序)----数据结构-排序①
  • Flutter 中的 ButtonBarTheme 小部件:全面指南
  • 深度学习-05-反向传播理论知识
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • 多线程新手村5--线程池
  • 深入了解以太坊
  • 「面试题」如何实现一个圣杯布局?
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 5、React组件事件详解
  • es6--symbol
  • exports和module.exports
  • gcc介绍及安装
  • js操作时间(持续更新)
  • Laravel5.4 Queues队列学习
  • mysql innodb 索引使用指南
  • Redis的resp协议
  • spring cloud gateway 源码解析(4)跨域问题处理
  • spring security oauth2 password授权模式
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • Vue 2.3、2.4 知识点小结
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 以太坊客户端Geth命令参数详解
  • AI算硅基生命吗,为什么?
  • # Java NIO(一)FileChannel
  • #面试系列-腾讯后端一面
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (四)React组件、useState、组件样式
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (原)本想说脏话,奈何已放下
  • ..回顾17,展望18
  • .Net 8.0 新的变化
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .Net MVC + EF搭建学生管理系统
  • .net Stream篇(六)
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .Net 基于MiniExcel的导入功能接口示例