这篇文章主要介绍“go mod依赖管理实例分析”,在日常操作中,相信很多人在go mod依赖管理实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”go mod依赖管理实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
GOPATH 所有的依赖都放置在同一路径下,可以复用下载的依赖,但是当不同项目需要依赖不同版本的依赖时,就很容易出现冲突问题。
govendor 解决了依赖库版本不一致的问题,但是不好控制(了解即可)
go mod 使用go.mod文件管理以来的版本,通过go get下载依赖
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()
声明废弃的版本
go get xx/xx/x@${parameter}
${parameter}可以选择的参数如下:
go mod tidy 根据go.mod文件添加或者删除项目所需要的依赖
go get -u xx/xx/x
这个操作会升级依赖的依赖,有可能会引发依赖版本不兼容问题导致的编译不通过,比如thrift的0.13与0.14不兼容。
循环依赖问题:
要注意避免循环依赖问题。
到此,关于“go mod依赖管理实例分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。