返回顶部
首页 > 资讯 > 后端开发 > GO >一文详解gomod依赖管理详情
  • 906
分享到

一文详解gomod依赖管理详情

2024-04-02 19:04:59 906人浏览 八月长安
摘要

目录1. Go的依赖管理发展2. go.mod 文件分析3. go mod依赖下载工具4. 可能出现的问题汇总1. go的依赖管理发展 GOPATH 所有的依赖都放置在同一路径下,

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不兼容。

循环依赖问题:

要注意避免循环依赖问题。

到此这篇关于一文详解go mod依赖管理详情的文章就介绍到这了,更多相关go mod依赖管理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: 一文详解gomod依赖管理详情

本文链接: https://lsjlt.com/news/121013.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 一文详解gomod依赖管理详情
    目录1. go的依赖管理发展2. go.mod 文件分析3. go mod依赖下载工具4. 可能出现的问题汇总1. go的依赖管理发展 GOPATH 所有的依赖都放置在同一路径下,...
    99+
    2024-04-02
  • 详解Go 依赖管理 go mod tidy
    目录前言Debug准备源码的位置debug 配置文件dlv启动执行过程加载go.mod文件加载依赖更新go.mod文件前言 go mod tidy的作用是把项目所需要的依赖添加到go...
    99+
    2024-04-02
  • package.json管理依赖包版本详解
    目录npm版本号定义package.json怎么识别依赖版本不要太相信npm包的版本号dependencies、devDependencies与peerDependenciesdep...
    99+
    2024-04-02
  • maven多模块项目依赖管理与依赖继承详解
    目录maven多模块项目依赖管理与依赖继承1、指定父模块与默认继承2、依赖管理关于maven项目依赖继承问题需要在父项目中加入把父项目已POM的形式在子项目中以<parent&...
    99+
    2024-04-02
  • Java中的Spring循环依赖详情
    目录一、什么是循环依赖?那么循环依赖是个问题吗?二、Bean的生命周期三、三级缓存解决循环依赖思路分析四、Spring到底解决了哪种情况下的循环依赖五、总结一、什么是循环依赖? 很简...
    99+
    2024-04-02
  • JavaMaven依赖传递,可选依赖,排除依赖详解
    目录前言一、依赖传递与冲突问题1.1 依赖下钻1.2 依赖具有传递性二、可选依赖和排除依赖前言 现在的项目一般是拆分成一个个独立的模块,当在其他项目中想要使用独立出来的这些模块,只需...
    99+
    2024-04-02
  • JavaSpring处理循环依赖详解
    目录01-前言:什么是循环依赖?02-Spring 如何处理循环依赖?03-Spring 中解决循环依赖的三级缓存01-前言:什么是循环依赖? 首先,我们先明确下依赖的定义。 如果一...
    99+
    2023-05-17
    Java中的Spring Spring处理循环依赖
  • Spring 循环依赖之AOP实现详情
    前言: 我们接着上一篇文章继续往下看,首先看一下下面的例子,前面的两个serviceA和serviceB不变,我们添加一个BeanPostProcessor: @Component ...
    99+
    2024-04-02
  • SpringBootStarter依赖原理与实例详解
    目录1 Starter2 了解 spring.factories机制2.1 不同包路径下的依赖注入2.2 spring.factories 机制3 spring.factories ...
    99+
    2024-04-02
  • 详解PNPM Monorepo依赖项管理功能模拟实现
    目录正文读取 package.json 文件创建软链接安装依赖项并创建链接总结:正文 PNPM Monorepo 是一种在大型项目中管理依赖项的方法,它可以让多个子项目共享同一个 ...
    99+
    2023-03-10
    PNPM Monorepo依赖管理 PNPM Monorepo
  • 详解Angular依赖注入
    目录概述一、依赖注入二、Angular的依赖注入框架概述 依赖注入:设计模式 依赖:程序里需要的某种类型的对象。 依赖注入框架:工程化的框架 注入器Injector:用它的API创...
    99+
    2024-04-02
  • Spring依赖注入和控制反转详情
    目录控制反转什么是依赖紧耦合对象松散耦合对象依赖注入为什么我们需要 IoC 容器以下是上面的重要问题控制容器反转(IoC 容器)Spring 依赖注入总结前言: 在我们开始做任何事情...
    99+
    2024-04-02
  • 你应该知道的几类npm依赖包管理详解
    前言 大家都知道在一个Node.js项目中,package.json几乎是一个必须的文件,它的主要作用就是管理项目中所使用到的外部依赖包,同时它也是npm命令的入口文件。下面话不多说了,来一起看看详细的介绍...
    99+
    2022-06-04
    详解 你应该知道 几类
  • Spring依赖注入与第三方Bean管理基础详解
    目录1. 注解开发依赖注入1.1 使用@Autowired注解开启自动装配模式1.2 使用@Qualifier注解指定要装配的bean名称1.3 使用@Value实现简单类型注入2....
    99+
    2022-12-23
    Spring依赖注入 Spring第三方Bean管理
  • swift依赖注入和依赖注入容器详解
    目录什么是控制反转(Inversion of Control)?什么是依赖注入?依赖注入的种类初始化器注入属性注入方法注入依赖注入容器实现一个简单的依赖注入容器总结什么是控制反转(I...
    99+
    2023-01-28
    swift依赖注入依赖注入容器 swift依赖注入
  • 详解asp.net core 依赖注入
    前言   好久没有写微博了,因为前段时间由于家庭原因决定从工作了3年多的北京转移到上海去。依赖注入在学习net core的时候也有写过类似的东西,只是实践的较少,结果来到上海新...
    99+
    2022-06-07
    net ASP.NET core ASP
  • ASP.NET Core依赖注入详解
    目录一、什么是依赖注入二、使用框架提供的服务三、注册服务四、生命周期五、请求服务六、设计你的依赖服务ASP.NET Core的底层设计支持和使用依赖注入。ASP.NET Core应用...
    99+
    2024-04-02
  • 一文详解npm如何更新项目最新依赖包
    目录NPM 是什么?如何保持依赖是最新的怎样使用 npm outdated 命令怎样使用 npm-check-updates如何使用 npm-check-updates 互动模式总结...
    99+
    2023-01-15
    npm安装项目依赖包指令 npm更新依赖包到指定版本 npm更新项目最新依赖包
  • 如何简单的理解依赖注入详解
    依赖注入(Dependency Injection,简称DI)是一种设计模式,用于解耦代码中的依赖关系。简单来说,依赖注入就是将一个...
    99+
    2023-08-14
    依赖注入
  • WPF依赖属性用法详解
    一、什么是依赖属性 依赖属性就是一种自己可以没有值,并且可以通过绑定从其他数据源获取值。依赖属性可支持WPF中的样式设置、数据绑定、继承、动画及默认值。 将所有的属性都设置为依赖属性...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作