Go: Go Module和Go Proxy解决安装难题

Go从1.11后带来的官方的管理依赖(引用的库)的一个工具:

https://github.com/golang/go/wiki/Modules  (读完文档)


以github上的一个项目为例:

最开始官方的方法,我们可能会

然后在src文件夹下通过go get或gopm拉取项目。但是一跑就会报什么not-standard import 'xxxxx' in standard package "xxx"


Go Module的特点:

  • 不再希望把项目放到src下,希望go/src下是一些纯go的第三方库.像java一样有自己的开发文件夹,放到自己想放到的任何地方,但是一般不要放到官方文件夹下.
  • 还有个是下载包慢的问题(GoProxy)。https://mirrors.aliyun.com/goproxy/

先介绍:Go Proxy

https://goproxy.io/

按照官网说明输入如下命令后:

gg~~我的电脑是windows

所以,windows打开powershell:

$env:GOPROXY="https://mirrors.aliyun.com/goproxy/"

这样就可以用阿里云的快速服务了。

当然,,上面介绍的是临时设置,下次使用还需要重新设置就很不爽了。

于是,最简单的方法还是应该设置计算机的系统环境变量:


全新的项目使用Go Module:

在任意位置新建一个项目【不要再放到go/src下面了,随便找个地方】,把大名鼎鼎的iris的示例代码复制粘贴:

爆红是因为我们没有装包。

步骤:

1. 初始化:

go mod init xxx

go,mod文件还是空的是因为我们还没有把包装进去。

2. 装包:

go run xxx.go

包装完后就可以运行了:

然后看看是否跑起来了:

哈哈,跑起来了。Go Module真牛逼~

提一句:

如果还是想要放到src下面,还是想用go Module。

比如,把桌面上刚刚创建的项目拷贝到go/src下

然后执行go run main.go,有时候会出现not-standard import 'xxxxx' in standard package "xxx"

这时候需要我们设置环境变量GO111MODULE

但是一般都设置为on

然后再在go/src下跑就ok了~


Golang与Go Module:

go.mod 和 go.sum介绍
go.mod是Go项目的依赖描述文件,该文件主要用来描述两个事情:

当前项目名(module)是什么。每个项目都应该设置一个名称,当前项目中的包(package)可以使用该名称进行相互调用。
当前项目依赖的第三方包名称。项目运行时会自动分析项目中的代码依赖,生成go.sum依赖分析结果,随后go编译器会去下载这些第三方包,然后再编译运行。
go.sum依赖分析文件,记录每个依赖库的版本和哈希值
一般情况下,go.sum应当被添加到版本管理中随着go.mod文件一起提交。

常用命令:

  •     go mod init: 初始化modules
  •     go mod download: 下载依赖的module到本地cache
  •     go mod edit: 编辑go.mod文件,选项有-json、-require和-exclude,可以使用帮助go help mod edit
  •     go mod graph: 以文本模式打印模块需求图
  •     go mod tidy: 检查,删除错误或者不使用的modules,以及添加缺失的模块
  •     go mod vendor: 生成vendor目录,将依赖复制到vendor目录下面
  •     go mod verify: 验证依赖是否正确
  •     go mod why: 解释为什么需要依赖
  •     go list -m: 查看主模块的路径
  •     go list -m -f={{.Dir}}: 查看主模块的根目录
  •     go list -m all: 查看当前的依赖和版本信息
     
发布了268 篇原创文章 · 获赞 36 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_39969226/article/details/103995682
go