关于go语言依赖管理的相关介绍

Go语言是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。今天北单博客小编给大家介绍go语言依赖管理,一起来看看吧。

go mod指令

关于go语言依赖管理的相关介绍

添加依赖

如果我们需要一个第三方的框架,首先查一下其在github上的url地址,如gin框架为github.com/gin-gonic/gin

首先开启module模式,即SET GO111MODULE = on,默认是auto(注意始终在当前项目目录下执行命令,免得出什么幺蛾子)

SET GOPROXY=https://goproxy.cn将代理设成国内的,不然下载不了,再加一句 env -w GOPROXY=https://goproxy.cn,direct(在goland中可以直接通过设置修改,不需要每次都执行该命令,前面的开启module模式也是一样)

关于go语言依赖管理的相关介绍

使用go mod init指令生成当前项目的go.mod文件

如果本地不存在需要的框架(GOPATH下),则执行go get -u github.com/gin-gonic/gin,大功告成,此时该框架应该会有三份,分别放在与src同级的pkg、GOPATH和External Libraries(实际不存在,goland虚拟出该目录,其中包括当前项目的module目录和GOROOT下的src目录,即SDK)目录下,编辑器通过External Libraries下的包来识别代码),当然也可以使用go mod download,但这个似乎不加参数,那么应该需要先在go.mod文件中添加该框架,才能成功,所以还是采用上一种

如果本地已经存在需要的框架,则执行go install github.com/gin-gonic/gin或者在go.mod文件的require中添加github.com/gin-gonic/gin(直接改文件好像不太行,应该要用go mod edit),或者在程序中import github.com/gin-gonic/gin然后执行go mod tidy

删除依赖

如果不再需要这个框架,则执行go mod tidy,如果程序中没有涉及到该框架的代码,该指令会自动将go.mod文件中的该框架删除

此时External Libraries目录下的该框架被删除,其余两处保留,结果是编辑器无法识别该框架,因此无法给出代码提示,并且会在涉及到该框架的代码处报错

其他指令

go mod vendor用于将当前项目所有的依赖打包放到项目下的vendor目录下,(该目录由该指令创建,自己新建文件夹无效),这样可以方便地将项目及其依赖拷贝到另外的计算机上。

另外扯点别的,goland 2019 3.0版本之后当检测到剪贴板中有github.com/gin-gonic/gin等时,会自动生成弹窗询问是否安装、导入等,如果已经设置好开启module模式并修改代理,可以直接点击弹窗上的选项进行操作

当前vscode暂不能很好地支持module模式(无法给出外部框架的代码提示,或时有时无,也不太能实现自动导包),另外错误显示延迟太严重。

关于go语言依赖管理的相关介绍就分享到这里了,希望以上内容可以对大家有一定的参考价值,可以学以致用。如果喜欢本篇文章,不妨把它分享出去让更多的人看到。

原创文章,作者:JVBDF,如若转载,请注明出处:https://www.beidanyezhu.com/a/26213.html

(0)
JVBDF的头像JVBDF
上一篇 2025-01-01 17:24:57
下一篇 2025-01-01 17:24:59

相关推荐

  • go语言中的反射

    反射是什么? 反射是一种计算机处理方式。有程序可以访问、检测和修改它本身状态或行为的这种能力。能提供封装程序集、类型的对象。(程序集包含模块,而模块包含类型,类型又包含成员。)Go…

  • go语言中的byte是什么

    字符串中的每一个元素叫做“字符”,在遍历或者单个获取字符串元素时可以获得字符。 Go语言的字符有以下两种: 一种是 uint8 类型,或者叫 byte 型,代表了 ASCII 码的…

  • go语言适合开发什么

    其实Go语言主要用作服务器端开发,其定位是用来开发“大型软件”的,适合于需要很多程序员一起开发,并且开发周期较长的大型软件和支持云计算的网络服务。 Go语言融合了传统编译型语言的高…

  • go语言中的nil是什么

    大家都清楚,当你声明了一个变量 但却还并木优赋值时,golang中会自动给你的变量类型给一个对应的默认零值。 这是每种类型对应的零值: bool -> false numbe…

  • go语言使用json隐藏字段的方法

    使用场景:在 go 中给 API 调用者响应 json 数据。 1. 有些字段不暴露给用户。 2. 有些字段是根据用户的级别控制是否有这些数据。 Id字段不暴露给用户,则使用 `j…

    2025-01-03
  • go语言中可以把包名去掉吗

    Golang不可以把包名去掉,包名是一种类似命名空间的管理和组织代码的方式,而Golang的包有两种类型,一种是“main”包,该包的可以有唯一的一个“main”函数,这个函数也是…

  • go语言支持泛型吗

    Golang团队认为在类型系统和运行时的复杂性花费太大,还没找到可以和这个复杂性相抵的良好设计。 内置的map和slice其实都有泛型的味道,加上可以用interface{}来构造…

  • go语言适合开发web吗

    go语言适合开发web吗?相信大部分人都不太了解,今天小编为了让大家更加了解,给大家总结了以下内容,跟随小编一起来看看吧。 网络编程方面,Go语言广泛应用于 Web 应用、API …

  • go语言中make和new的区别是什么

    make、new make用于内建类型(map、slice 和channel)的内存分配,golang分配内存有一个make函数,该函数第一个参数是类型,第二个参数是分配的空间,第…

  • go语言有什么优势

    Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

分享本页
返回顶部