美文网首页
go 代码依赖管理工具mod使用

go 代码依赖管理工具mod使用

作者: weylau | 来源:发表于2019-12-14 14:33 被阅读0次

什么是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/list这个文件中是否有用户想要获取的版本,如果有,就依次获取GOPROXY//@v/.info、GOPROXY//@v/.mod、GOPROXY//@v/.zip 等文件,如果没有就直接从源码库中去下载

相关文章

  • GO学习笔记(8) - 依赖与工具

    目录 GoPath + Govendor go.mod 其他依赖管理工具:glide、dep、go dep... ...

  • GO 导入自定义包

    一 导入的包里不能带有 main 函数,否则会报下面的错误 代码 go mod 使用go mod 管理各种依赖,当...

  • go 代码依赖管理工具mod使用

    什么是go mod Go.mod是Golang1.11版本新引入的官方包管理工具用于解决之前没有地方记录依赖包具体...

  • 03、package irisWeb/controller is

    代码如下: 执行后报错: 原因是使用go mod 管理各种依赖,当导入自己定义的包的时候,需要从go.mod文件作...

  • 47.Goland

    告别GOPATH,快速使用 go mod(Golang包管理工具) /***@Time : {TIME}*@A...

  • Go Module

    Go 1.11 之后官方支持的版本管理工具 mod。 mod 官方给出了三个命令 go help mod、go h...

  • gomod常用

    gomod文件初始化:go mod init找到项目依赖并导入:go mod tidy安装指定版本:go mod ...

  • Go官方依赖管理工具: dep

    Go官方依赖管理工具: dep dep是一个原型依赖管理工具,需要在Go 1.7及更高的版本中使用依赖管理工具是为...

  • beego 使用mod 的坑

    go mod 模式下添加依赖失败 在 go.mod文件中添加

  • golang 1.4 mod 使用经验

    1.go mod 替代原来gopath的功能,依赖包下载依赖Go环境变量 2.go mod init 一个gola...

网友评论

      本文标题:go 代码依赖管理工具mod使用

      本文链接:https://www.haomeiwen.com/subject/ncbcnctx.html