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

Go Module常用命令

Go Module常用命令@TOC

Go Module常用命令

go mod init  														 #初始化go.mod
go mod tidy  														 #更新依赖文件
go mod download 												 #下载依赖文件
go mod vendor 													 #将依赖转移至本地的vendor文件
go mod edit   													 #手动修改依赖文件
go mod graph  													 #打印依赖图
go mod verify 													 #校验依赖
go mod why -m <pkg> 										 #来查看是被哪个依赖引入的
go list -u -m all 											 #查看所有以升级依赖版本
go mod edit -fmt/-require=/-droprequire= #格式化/添加依赖/移除依赖项

Go Module介绍

go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用

go module可以将某个项目(文件夹)下的所有依赖整理成一个 go.mod 文件,里面写入了依赖的版本等

使用go module之后我们可不用将代码放置在src下了

设置Go Module

查看当前golang env配置

go env

1.13版本GO111MODULE 默认是auto, 1.13+版本根据目录下有没有go.mod文件判断是否开启Module,可以手动设置为on/off

go env -w GO111MODULE="on"

设置代理 go env -w GOPROXY=下面代理的其中一个

htps://goproxy.io
https://goproxy.cn (七牛云)
https://mirrors.aliyun.com/go…(阿里云)
https://mirrors.cloud.tencent…(腾讯云)
https://athens.azurefd.net(微软)

使用Go Module

一、初始化 在项目根目录下会生成go.mod文件

go mod init [模块名]

二、检测依赖

go mod tidy

三、下载依赖
需要先设置GOPROXY,依赖下载至$GOPATH/pkg/mod/下,并在项目根目录下生成go.sum文件

go mod download

go get 升级

  1. 运行 go get -u 将会升级到最新的次要版本或者修订版本(x.y.z, z是修订版本号, y是次要版本号)
  2. 运行 go get -u=patch 将会升级到最新的修订版本
  3. 运行 go get package@version 将会升级到指定的版本号version
  4. 运行go get如果有版本的更改,那么go.mod文件也会更改

四、导入依赖
将刚下载至GOPATH下的依赖转移到该项目根目录下的vendor(自动新建)文件下

go mod vendor

五、解决冲突

  1. module declares its path as: A but was required as: B
    模块路径声明为A,需要改成B
    **解决:**在go.mod文件中增加 replace A => B
  2. 依赖包不同版本冲突
    **解决:**使用别名
import(v1 "github.com/v1"v2 "github.com/v2"
)
http://www.lryc.cn/news/305963.html

相关文章:

  • ubuntu压缩和解压
  • 华为HCIP Datacom H12-831 卷24
  • react + Typescript 中 react有多少内置的类型 分别是什么
  • harbor(docker仓库)仓库部署 - 高可用
  • 题目 1262: 邮局选址问题
  • 内核内存回收关键隐藏变量之page引用计数
  • 数据结构---链表的基本操作
  • 异步框架Celery在Django中的运用
  • YOLOv5代码解读[02] models/yolov5l.yaml文件解析
  • 智能搬运机器人|海格里斯将如何持续推进工业和物流的智能化升级与发展?
  • linux之前后端项目部署与发布
  • Python 高级语法:一切皆对象
  • python jupyter notebook打开页面方便使用
  • 音视频开发之旅(69)-SD图生图
  • 數據集成平台:datax將hive數據步到mysql(全部列和指定列)
  • pikachu靶场-File Inclusion
  • [今天跟AI聊聊职场] ~你能接受你的直接领导能力不如你,年纪还比你小很多吗?
  • 网络原理TCP之“三次握手“
  • 990-03产品经理与程序员:什么是 IT 与业务协调以及为什么它很重要?
  • Java Web(七)__Tomcat(二)
  • 【项目实战】帮美女老师做一个点名小程序(Python tkinter)
  • Elasticsearch 去重后求和
  • 考研数学——高数:函数与极限(3)
  • LeetCode49 字母异位词分组
  • 【Python】Windows本地映射远程Linux服务器上的端口(解决jupyter notebook无法启动问题)
  • C++面试:用户态和内核态的基本概念、区别
  • Vue计算属性computed()
  • JWT学习笔记
  • WSL里的Ubuntu 登录密码忘了怎么更改
  • 【软件测试面试】要你介绍项目-如何说?完美面试攻略...