一文详解go mod依赖管理详情
作者:树獭叔叔 发布时间:2023-07-13 04:35:06
标签:go,mod,依赖,管理
1. go的依赖管理发展
GOPATH 所有的依赖都放置在同一路径下,可以复用下载的依赖,但是当不同项目需要依赖不同版本的依赖时,就很容易出现冲突问题。
govendor 解决了依赖库版本不一致的问题,但是不好控制(了解即可)
go mod 使用go.mod文件管理以来的版本,通过go get下载依赖
2. go.mod 文件分析
module xx/xx/xx/v2
go 1.16
require (
xx/xx/xx v1.3.3
xx/xx/xx v0.0.0-20200330080233-e4ea8bd1cbed
xx/xx/xx v2.2.1+incompatible
xx/xx/xx v0.3.0 // indirect
)
exclude (
xx/xx/xx v1.3.3-rc.0
)
replace xx/xx/xx => xx/xx v1.3.3
retract (
v1.0.0 // 废弃的版本,请使用v1.1.0
)
module xx/xx/xx/v2
是指该项目的module路径,/v2
是指版本信息,可以省略。
go 1.16
是指项目需要的最低go的版本
require()是项目需要的其他依赖:
xx/xx/xx v1.3.3
指明了项目需要的依赖以及版本号。xx/xx/xx v0.0.0-20200330080233-e4ea8bd1cbed
是时间戳性质的版本号。xx/xx/xx v0.3.0 // indirect
是指依赖需要的依赖xx/xx/xx v2.2.1+incompatible
是指依赖的库的major版本大于引用的版本,不合规范。
exclude()
指引用依赖时,跳过某些版本
replace xx/xx/xx => xx/xx v1.3.3
指替换某些依赖
retract()
声明废弃的版本
3. go mod依赖下载工具
go get xx/xx/x@${parameter}
${parameter}可以选择的参数如下:
go mod tidy 根据go.mod文件添加或者删除项目所需要的依赖
4. 可能出现的问题汇总
go get -u xx/xx/x
这个操作会升级依赖的依赖,有可能会引发依赖版本不兼容问题导致的编译不通过,比如thrift的0.13与0.14不兼容。
循环依赖问题:
要注意避免循环依赖问题。
来源:https://juejin.cn/post/7109880275441549342
0
投稿
猜你喜欢
- 听说最近流行JQ风格的语法,不流行EXT风格了一.//ajax类fw=window.fw||{};fw.ajax = { &nbs
- Gtalk 软件的最下方有个很好又很实用的功能,就是 Gmail 邮件提醒功能。会定时更新你 Gmail 中未读新邮件的数量。试想
- 我设了个排卖的起始时间然后设了一个结束时间现在要精确到小时比如提示 “离到期时间:1天XX小时”大家有什么想法吗?我就是在小时总是不能实现,
- CSS命名规范一.文件命名规范全局样式:global.css;框架布局:layout.css;字体样式:font.css;链接样式:link
- 开发过程中,错误免不了。为了纠正错误与规范化。可以使用MS SQL Server的系统存储过程sp_rename与OBJECTPROPERT
- 远程(如通过互联网)连接access数据库的示例:首先,需要使用TCP/IP,ADO及XML(需要安装Microsoft XML 4.0。)
- 判断服务器是否安装了某种asp组件,比较常用的代码如下:代码如下:<% '功能:检查是否存在系统组件或组件是否安装成功
- global.asa<SCRIPT LANGUAGE=VBScript RUNAT=Server>Sub&n
- 首先你要明白24bit的bmp图片的基本信息:1像素占3个字节,头部占54个字节。好了,现在开始做验证码了,这里以4位验证码(大小为20(高
- 随着JS与XHTML的应用普及,越来越多的web界面应用技术出现在网站上,比如我们常见的日历控件,搜索下拉框等,这些web界面应用技术大大的
- “用户体验”作为舶来品在国内风靡已经有几个年头了,而且从目前情况来看仍旧会继续风靡一段时间。当某产品发布会上,发言人张口闭口就
- 最近因工作需要,要在静态页面上实现分页,想了下,决定用AJAX来实现,所以就捣鼓了下面这么个东西,截图如下:更多关于分页的文章演示地址:ht
- XmlDocume
- 我在初学时查阅过大量相关资料,发现其中提供的很多方法实际操作起来并不是那么回事。对于简单的应用,这些资料也许是有帮助的,但仅限于此,因为它们
- 本文实例讲述了python处理图片之PIL模块简单使用方法。分享给大家供大家参考。具体实现方法如下:#!/usr/bin/env pytho
- 1.彻底弄懂CSS盒子模式一(DIV布局快速入门) 2.彻底弄懂CSS盒子模式二(导航栏实例) 4.彻底弄懂CSS盒子模式四(绝对定位和相对
- IE测试通过,FF有点小BUGCls_Leibie.asp代码如下:<% '数据库字段为类属性,添加、删除、修改、操
- 用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的 SELECT语句,另外一种就是更新语句,也叫做数据操作语句。言外之 意
- 此文章主要介绍的是MySQL数据库的字符(串)的实际操作步骤,我们大家都知道MySQL数据库的字符(串)在实际操作是经常被用到了,所以你对其
- 使用Northwind 数据库首先查询Employees表查询结果:city列里面只有5个城市使用ROW_NUMBER() OVER(PAR