go mod依赖离线安装_Go语言go mod包依赖管理工具使用详解

go modules 是 golang 1.11 新加的特性。现在 1.12 已经发布了,是时候用起来了。Modules 官方定义为:

模块是相关 Go 包的集合。modules 是源代码交换和版本控制的单元。go 命令直接支持使用 modules,包括记录和解析对其他模块的依赖性。modules 替换旧的基于 GOPATH 的方法来指定在给定构建中使用哪些源文件。

如何使用 Modules?

1) 首先需要把 golang 升级到 1.11(现在 1.12 已经发布了,建议使用 1.12)

2) 设置 GO111MODULE

GO111MODULE

GO111MODULE 有三个值:off, on 和 auto(默认值)。

GO111MODULE=off,go 命令行将不会支持 module 功能,寻找依赖包的方式将会沿用旧版本那种通过 vendor 目录或者 GOPATH 模式来查找。

GO111MODULE=on,go 命令行会使用 modules,而一点也不会去 GOPATH 目录下查找。

GO111MODULE=auto,默认值,go 命令行将会根据当前目录来决定是否启用 module 功能。这种情况下可以分为两种情形:

当前目录在 GOPATH/src 之外且该目录包含 go.mod 文件

当前文件在包含 go.mod 文件的目录下面。

当 modules 功能启用时,依赖包的存放位置变更为 $GOPATH/pkg,允许同一个 package 多个版本并存,且多个项目可以共享缓存的 module。

go mod

golang 提供了 go mod 命令来管理包。

go mod 有以下命令:

命令

说明

download

download modules to local cache (下载依赖包)

edit

edit go.mod from tools or scripts (编辑go.mod)

graph

print module requirement graph (打印模块依赖图)

init

initialize new module in current directory (在当前目录初始化mod)

tidy

add missing and remove unused modules (拉取缺少的模块,移除不用的模块)

vendor

make vendored copy of dependencies (将依赖复制到vendor下)

verify

verify dependencies have expected content (验证依赖是否正确)

why

explain why packages or modules are needed (解释为什么需要依赖)

如何在项目中使用

【示例 1】创建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Golang中,我们可以使用`go get`命令来下载和安装依赖。然而,有些情况下,我们可能需要在没有网络连接的情况下进行依赖的下载。以下是一种解决方案来进行Golang离线依赖下载: 1. 配置代理服务器:在有网络连接的情况下,配置一个代理服务器来捕获所有的网络请求并缓存下载的依赖。这样,我们就可以将缓存的依赖复制到离线环境中使用。常用的代理服务器有`mod`和`goproxy`等。 2. 在有网络连接的机器上通过`go get`下载依赖使用具有网络连接的机器,通过`go get`命令下载所需的依赖。例如,如果要下载`github.com/gin-gonic/gin`,可以执行以下命令: ``` go get -u github.com/gin-gonic/gin ``` 这将会在GOPATH下的`src`文件夹中下载并安装依赖。 3. 将依赖复制到离线环境中:一旦依赖被下载到有网络连接的机器上,找到对应的文件夹(在`GOPATH/src`下)并将其复制到离线环境中。可以使用USB存储设备等将依赖复制到离线环境中。 4. 配置离线环境的GOPATH:在离线环境中,设置一个新的GOPATH。在该环境中,将GOPATH设置为离线环境中复制的依赖文件夹的路径。 5. 使用依赖:在离线环境中,我们现在可以在代码中使用已下载的依赖使用`import`语句导入所需的名,然后正常地在代码中使用它们。 虽然这种方法可以实现Golang离线依赖的下载,但是需要记录和处理依赖关系,以确保所有依赖都被下载并正确地复制到离线环境中。所以,它可能在处理大型项目时变得复杂。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值