GO中的包管理

我们知道,程序是可以通过封装来提高代码的复用性。那么GO就是可以通过包管理的机制来管理代码。

Go Modules于Go语言1.11版本时引入,在1.12版本正式支持,是由Go语言官方提供的包管理解决方案。Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性

设置环境变量

首先需要设置环境变量,可以使用go env命令查看当前配置。

$ go env
GO111MODULE="auto"
GOPROXY="https://proxy.golang.org,direct"
GONOPROXY=""
GOSUMDB="sum.golang.org"
GONOSUMDB=""
GOPRIVATE=""

如果需要更改 GO111MODULE ,可以使用go env命令

go env -w GO111MODULE=on

其中:

  • GO111MODULE
    auto:只要项目包含了 go.mod 文件的话启用 Go modules,目前在 Go1.11 至 Go1.14 中仍然是默认值。
    on:启用 Go modules,推荐设置,将会是未来版本中的默认值。
    off:禁用 Go modules,不推荐设置。

  • GOPROXY
    此环境变量主要用于设计Go Module的代理

  • GOSUMDB
    此环境变量用于在拉取模块的时候保证模块版本数据的一致性。

初始化

Go Modules的使用方法比较灵活,在目录下包含go.mod文件即可
首先通过如下命令创建一个新的Module,然后当前目录会生成go.mod文件。

go mod init [module name]

Go Modules会自动管理包,如果需要引入依赖,只需要在go.mod下添加以下内容(以gorose为例子)

module ModuleName
 
require (
	github.com/gohouse/gorose v1.0.5
)

go get的使用

go get 命令用于拉取新的依赖,以下为go get命令具体用法:
在这里插入图片描述

参数的表示

-d 只下载不安装
-f 只有在你包含了 -u 参数的时候才有效,不让 -u 去验证 import 中的每一个都已经获取了,这对于本地 fork 的包特别有用
-fix 在获取源码之后先运行 fix,然后再去做其他的事情
-t 同时也下载需要为运行测试所需要的包
-u 强制使用网络去更新包和它的依赖包
-v 显示执行的命令

常用命令

go mod init // 初始化go.mod
go mod tidy // 更新依赖文件
go mod download // 下载依赖文件
go mod vendor // 将依赖转移至本地的vendor文件
go mod edit // 手动修改依赖文件
go mod graph // 查看现有的依赖结构
go mod verify // 校验依赖

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值