

go 代码依赖管理工具mod使用
source link: https://studygolang.com/articles/25370
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

什么是go mod
Go.mod是Golang1.11版本新引入的官方包管理工具用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。类似于php的composer,java的maven;
Go.mod其实就是一个Modules,关于Modules的官方定义为:
Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性。Modules替换旧的基于GOPATH的方法,来指定使用哪些源文件。
Modules和传统的GOPATH不同,不需要包含例如src,bin这样的子目录,一个源代码目录甚至是空目录都可以作为Modules,只要其中包含有go.mod文件。
如何使用
- 开启go mod
export GO111MODULE=on
go1.11 的 module 功能是默认不会开启的,想要开启也非常简单, 通过一个环境变量即可开启go module
- 初始化
go mod init
该命令会初始化一个mod管理的项目 在项目路径下会有两个文件go.mod go.sum
- 下载包存放位置
golang在运行、编译项目的时候,都会检查依赖并下载依赖包。在启动了go mod之后,通过go mod下载的依赖包,不在放在GOPATH/src中,而是放到GOPATH/pkg/mod中;
- 关于go.sum
你会发现除了 go.mod 这个文件之外,还有一个 go.sum 文件,这个文件保存了每个依赖库的对应的hash值,来保证下载回来的代码库是正确的,不被人篡改的;
- 关于$GOPROXY 被“墙”的问题
export GOPROXY=https://goproxy.io
当我们使用go的时候,go默认会直接从代码库(golang.org)中去下载所需的相关依赖,GOPROXY 这个环境变量可以让我们控制自己从哪里去下载源代码
goproxy.io 是一个开源项目,当用户请求一个依赖库时,如果它发现本地没有这份代码就会自动请求源,然后cache到本地,用户就可以从 goproxy.io 请求到数据。当然,这些都是在一个请求中完成的。goproxy.io 只支持 go module 模式。当用户执行 go get 命令时,会去检查 GOPROXY//@v/.info、
GOPROXY//@v/.zip 等文件,如果没有就直接从源码库中去下载
Recommend
-
64
点击上方“Python开发”,选择“置顶公众号” 关键时刻,第一时间送达! ...
-
31
go modules 是 golang 1.11 新加的特性。现在1.12 已经发布了,是时候用起来了。Modules官方定义为: 模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和...
-
49
以前写过一篇关于go管理依赖包工具 dep的文章,当时认为dep将会成为官方依赖工具,现在看来是自己图样图斯内幕破了,正如官方一直提到dep是“official experiment”官方实验项目的那样,随着go modules 在go1.11版推出,go1.12版功能不断改进...
-
12
PyCon China 2019:Python 虚拟环境和依赖管理工具大乱斗 发表回复 这是在 PyCon China 2019 上海场 9 月 21...
-
10
Pipenv:新一代Python项目依赖管理工具 发表回复 UPDATE(2019/8/31):不要用 Pipenv...
-
6
go mod特定依赖包处理 wu_sphinx · 大约2小时之前 · 31 次点击 · 预计阅读时间 1 分钟 · 大约8小时之前 开始浏览
-
6
Go 语言使用 Go Modules(go.mod) 来管理依赖 2021-08-17 — Yanbin 前几日系统性差不多读完了一本讲解 Go 语言的书籍,记录下几篇笔记,现在终于能够开始看看专题性的知识了。首先就是关于 Go 如何管理依赖的问题,Java 经历了最早逐个下载...
-
7
Cocoa 新的依赖管理工具:Carthage 说到 iOS 的依赖管理工...
-
4
请使用 PDM.混乱的 PythonPython 的依赖管理工具 pip 一直被众多开发者吐槽。从我个人角度,pip 有三点致命缺陷:无法解决...
-
5
poetry Poetry 是 Python 中用于依赖管理和打包的工具。 它允许您声明项目所依赖的库,并将为您管理(安装 / 更新)它们。 Poetry 提供了一个锁文件来确保可重复安装,并且可以构建您的项目以进行分发。 ...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK