【go语言】2.4.3 Go Modules

这篇具有很好参考价值的文章主要介绍了【go语言】2.4.3 Go Modules。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Go Modules 是 Go 语言的官方依赖管理工具,自 Go 1.11 版本开始引入。它解决了 Go 语言在依赖管理上的一些问题,如版本控制、依赖隔离等。

初始化一个新的模块

你可以使用 go mod init [module-path] 命令来初始化一个新的模块。这将创建一个 go.mod 文件。

例如,在一个空目录下运行 go mod init github.com/yourusername/myproject

mkdir myproject
cd myproject
go mod init github.com/yourusername/myproject

这将创建一个 go.mod 文件,内容如下:

module github.com/yourusername/myproject

go 1.16

这里的 module 行声明了模块路径,go 行声明了 Go 语言的版本。

添加依赖

当你在代码中导入一个新的包并运行 go buildgo test 或其他一些命令时,Go 会自动查找并添加所需的依赖。

例如,在 main.go 中导入并使用 rsc.io/quote 包:

package main

import (
	"fmt"
	"rsc.io/quote"
)

func main() {
	fmt.Println(quote.Hello())
}

然后运行 go build,Go 将会自动下载所需的 rsc.io/quote 包,并更新 go.mod 和 go.sum 文件。

现在 go.mod 文件看起来可能像这样:

module github.com/yourusername/myproject

go 1.16

require rsc.io/quote v1.5.2

这里的 require 行声明了你的项目依赖的其他模块及其版本。

更新依赖

你可以使用 go get 命令来手动添加、更新或移除依赖。例如,要更新到 rsc.io/quote 的最新版本,你可以运行:

go get rsc.io/quote@latest

要移除一个依赖,你可以直接从 go.mod 文件中删除对应的 require 行,然后运行 go mod tidy

依赖隔离

每个 Go Modules 项目都有自己的依赖,这些依赖被存储在项目路径外的一个文件夹中($GOPATH/pkg/mod),每个项目都不会影响到其他项目,实现了依赖的隔离。

总的来说,Go Modules 是 Go 语言的官方依赖管理工具,它提供了一种便捷的方式来管理你的 Go 项目的依赖。理解和熟练使用 Go Modules 是提高 Go 语言开发效率的关键。
推荐阅读:

https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA

https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

【go语言】2.4.3 Go Modules文章来源地址https://www.toymoban.com/news/detail-617164.html

到了这里,关于【go语言】2.4.3 Go Modules的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Go 语言进阶与依赖管理 | 青训营

    Powered by: NEFU AB-IN GO语言工程实践课后作业:实现思路、代码以及路径记录 Go可以充分发挥多核优势,高效运行 Goroutine 是Go语言中的 协程 ,一种 轻量级的线程 ,由Go语言的运行时管理,可以实现高并发的程序设计,由于轻量级的特性,goroutine可以创建成千上万个,而且消耗

    2024年02月11日
    浏览(34)
  • Go 语言并发编程 及 进阶与依赖管理

    协程可以理解为 轻量级线程 ; Go更适 合高并发场景原因 之一: Go语言 一次可以创建上万协成 ; “快速”: 开多个协成 打印。 go func() : 在 函数前加 go 代表 创建协程 ; time.Sleep() : 协程阻塞,使主协程 在 子协程结束前阻塞不退出 ; 乱序输出 说明并行 ; 通过通信共享内

    2024年02月13日
    浏览(38)
  • 【go modules】missing go.sum entry for module providing package

    问题描述: go get 下载第三方包采用module 管理包一般会放在pkg/mod 下面,那么如何自动管理包,以及导入包呢? 我们导入时候会发现报错如下: 这个错误提示说明在你的项目中缺少 github.com/gin-gonic/gin 模块的 go.sum 条目。 要解决这个问题,你可以尝试以下几个步骤: 删除 g

    2024年02月16日
    浏览(30)
  • 【Go mod 学习之 replace 篇】解决 go 本地依赖、无法拉取依赖、禁止依赖等问题

    golang mod 包管理使用 引入本地包 Go 专家编程之 replace go.mod 文件中通过 指令 声明module信息,用于控制命令行工具进行版本选择。一共有四个指令可供使用: module: 声明module名称; require: 声明依赖以及其版本号; replace: 替换require中声明的依赖,使用另外的依赖及其版本号

    2024年02月03日
    浏览(32)
  • 9012年都过了,还不会用go modules配置本地模块同学真要死了!_go greet

    (3)在工程根目录创建TestGreet.go文件,并输入如下代码: package main import “libs” import “fmt” func main() { fmt.Printf(libs.Greet(“Bill”)) } 如果在这时执行TestGreet.go,肯定会抛出如下错误: package libs is not in GOROOT (/usr/local/go/src/libs) 这是因为go编译器还无法找到libs下的Greet.go文件。

    2024年04月17日
    浏览(24)
  • Go官方指南(五)并发

    Go 程(goroutine)是由 Go 运行时管理的轻量级线程。 会启动一个新的 Go 程并执行 f ,  x ,  y  和  z  的求值发生在当前的 Go 程中,而  f  的执行发生在新的 Go 程中。 Go 程在相同的地址空间中运行,因此在访问共享的内存时必须进行同步。sync 包提供了这种能力,不过在 G

    2024年02月02日
    浏览(23)
  • go基础-依赖管理

    有些不可思议,简洁、优雅的go语言依赖管理如此混乱,发布多年也没有可靠的依赖管理机制,官方先后推出了多种依赖管理机制gopath、vendor、dep等,没有一个顺手,直到在Go 1.11推出go mod才有所缓解,也谈不上优秀,相比maven弱爆了。 主流语言都有官方依赖包站点,如maven、

    2024年02月15日
    浏览(31)
  • 【Go】依赖包管理

    2024年01月24日
    浏览(31)
  • 【go】依赖倒置demo

    为降低代码耦合性,采用依赖注入的设计模式。原始请求路径:router - api - service - dao。请求的为实际方法,具有层层依赖的关系。现将方法抽象为接口,即a依赖b,但a不创建(或销毁)b,仅使用b,b的创建(或销毁)交给容器。 api_abstract.go 中为抽象接口: api_dog.go 中为api的

    2024年01月19日
    浏览(25)
  • 使用Go模块进行依赖管理

    摘要:本文将介绍Go语言中的模块(module)概念,以及如何使用Go模块进行依赖管理。我们会探讨模块的基本概念、使用方法、配置和依赖关系管理等方面的内容。 Go语言自2007年发布以来,一直以其简洁、高效和强大的网络编程能力而受到开发者的喜爱。然而,随着项目规模

    2024年02月08日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包