go mod 使用三方包、go get命令

一、环境变量设置

go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct

 二、goland开启 go mod

go mod 使用三方包、go get命令_第1张图片

三、go mod 使用

在go.mod文件中声明三方包地址&版本号即可,如下:

go mod 使用三方包、go get命令_第2张图片

开发工具goland会自动解析go.mod文件,执行命令下载安装三方包。

go.mod 文件

go.mod 文件中可以使用到的语法关键词以及含义:

module: 定义当前项目的模块路径

go: 标识当前模块的 Go 语言版本,目前来看还只是个标识作用。

require: 说明 Module 需要什么版本的依赖。

exclude: 用于从使用中排除一个特定的模块版本。在实际的项目中很少被使用,故很少会显式的排除某个包的某个版本,除非我们知道某个版本有严重 bug。比如指令 exclude github.com/google/uuid v1.1.0,表示不使用 v1.1.0 版本。

创建module

go mod init 模块名

将在当前目录下创建一个新的Go模块,并生成一个go.mod文件来管理你的依赖项。 

增加缺少的module&移除无用的module 

go mod tidy

go mod tidy 命令只会修改 go.mod 文件,不会安装或更新包。如果你想确保使用的是最新的包版本,可以结合 go get -u 命令来更新包。 

 四、go get 使用

Go modules 模式下,使用 go get 命令,相关信息可以自动记录到 go.mod 文件中。

最新版本

go get -u github.com/nacos-group/nacos-sdk-go/v2
或
go get github.com/nacos-group/nacos-sdk-go/v2@latest

默认下载最新版本。

指定tag

go get -u github.com/nacos-group/nacos-sdk-go/[email protected]

执行日志:go: downgraded github.com/nacos-group/nacos-sdk-go/v2 v2.2.3 => v2.2.2

下载完成后,go.mod 文件内容自动变更为:

github.com/nacos-group/nacos-sdk-go/v2 v2.2.2 // indirect

// indirect ,表示该模块为间接依赖,也就是在当前应用程序中的 import 语句中,并没有发现这个模块的明确引用,如果没引用,我们提前先拉下来这个包,就会出现该注释,比如直接使用go get拉代码包,而不是 go build 让命令自动根据 go.mod 拉代码包。

指定分支的最新commit

拉取 master 分支的最新 commit

go get github.com/nacos-group/nacos-sdk-go/v2@master

go.mod 文件内容变更为:

github.com/nacos-group/nacos-sdk-go/v2 v2.2.4-0.20230901084646-9653ddea228a

更新

go get -u

-u(short for --update):告诉 go get 命令从远程仓库更新包到最新版本。如果你已经安装了某个包,但是有新版本可用,该命令将下载并安装最新版本。-u 标志是用于更新包的常见用法,它会忽略已安装包的版本,而是下载并安装最新的版本。

-u 标志将更新所有的依赖项,而不仅仅是直接导入的包。这可能会导致一些不可预期的变化,因此在使用该标志进行更新之前,建议先仔细阅读包的文档和变更日志,以了解更新可能带来的影响。

你可能感兴趣的:(golang,go,mod,go,get)