GoModules神器:如何正确使用 go get 和 go install?

嗨👋,我是后端有道,专注于分享高效、实用的后端开发技术与最佳实践,深度聚焦Go语言在后端开发中的应用与实现。

go getgo installGoModules的两个工具链命令,用于下载第三方库,或者可执行文件。

1. go get

GoModules出现之前,go get命令用于从远程代码库(如GitHub)下载或更新Go代码包,并将其源代码存储在$GOPATH/src目录下。但是引入GoModules后,$GOPATH/src目录不再是必需的。

现在,go get命令一方面用于下载或更新第三方Go代码包,并将其存放在$GOPATH/pkg/mod目录下;另一方面,它会将这些依赖添加到当前GoModules项目的go.mod文件中,并在Goland中显示为外部依赖库:

go get命令的下载规则如下:

  • 如果$GOPATH/pkg/mod目录下不存在指定的依赖库,go get会先下载该依赖库,存入$GOPATH/pkg/mod目录下,并将其导入项目。
  • 如果$GOPATH/pkg/mod目录下已存在该依赖库,go get则会直接导入已存在的库到项目。

go get命令有一个-u参数,用于更新已安装的依赖库到最新版本。即使$GOPATH/pkg/mod目录中已经存在该依赖库,使用-u参数时,go get会下载该依赖库的最新版本,并更新go.mod文件中的依赖版本信息,以反映这些库的最新版本。

注意: 使用go get -u命令时需谨慎,因为它可能导致第三方库的最新版本与本地go版本不兼容。

2. go install

用于编译并安装Go代码包,并将生成的可执行文件存储到$GOPATH/bin目录下。此命令也可能将一些Go代码包下载到$GOPATH/pkg/mod目录下。在使用go install命令时,应该在包名后附加@version,如果不确定要安装哪个版本,则可以使用@latest。例如:

go install github.com/micro/micro/v2@latest

想看更多后端开发技术相关内容,可以关注我的技术笔记。其详细涵盖了Go语言的语法、框架和第三方库使用方法,以及数据库、DevOps、中间件和计算机基础等相关知识。笔记中的所有内容均经过实际操作和验证,确保其准确性和实用性。
访问该网址查看详细内容:https://gitee.com/mundo-wang/technical-notes

3. 联系与区别

二者都用于从远程仓库(如GitHub)下载包。go get侧重于获取和更新包及其依赖,并更新go.mod文件。go install则专注于编译和安装可执行文件,而不会更新go.mod文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值