LQH入职第二天

1、从gitlib上拉下代码
命令:git clone https:www.com.git
https://blog.csdn.net/H_ONE_PIECE/article/details/99678096
2、永久的配置go环境
使用:go env -w ***
https://studygolang.com/articles/24448?fr=sidebar
例如:
go env -w GOPRIVATE=*.corp.example.com
go env -w GO111MODULE=on
3、golang GOPROXY 设置
我们知道从 Go 1.11 版本开始,官方支持了 go module 包依赖管理工具。
其实还新增了 GOPROXY 环境变量。如果设置了该变量,下载源代码时将会通过这个环境变量设置的代理地址,而不再是以前的直接从代码库下载。这无疑对我等无法科学上网的开发良民来说是最大的福音。

更可喜的是,goproxy.io 这个开源项目帮我们实现好了我们想要的。该项目允许开发者一键构建自己的 GOPROXY 代理服务。同时,也提供了公用的代理服务 https://goproxy.io,我们只需设置该环境变量即可正常下载被墙的源码包了
https://my.oschina.net/u/3305368/blog/3044169
4、go配置GOPRIVATE
在Go 1.13中,我们可以通过GOPROXY来控制代理,以及通过GOPRIVATE控制私有库不走代理。

设置GOPROXY代理:
go env -w GOPROXY=https://goproxy.cn,direct
设置GOPRIVATE来跳过私有库,比如常用的Gitlab或Gitee,中间使用逗号分隔:
go env -w GOPRIVATE=.gitlab.com,.gitee.com
如果在运行go mod vendor时,提示Get https://sum.golang.org/lookup/xxxxxx: dial tcp 216.58.200.49:443: i/o timeout,则是因为Go 1.13设置了默认的GOSUMDB=sum.golang.org,这个网站是被墙了的,用于验证包的有效性,可以通过如下命令关闭:
go env -w GOSUMDB=off
可以设置 GOSUMDB=“sum.golang.google.cn”, 这个是专门为国内提供的sum 验证服务。
go env -w GOSUMDB=“sum.golang.google.cn”
https://www.cnblogs.com/lijiejoy/p/11520944.html

GOPATH="/Users/***/Desktop/goProject/src"
GOPRIVATE="gitlab.com"
GOPROXY="https://goproxy.cn"
GOROOT="/usr/local/go"

5、golang 配置goproxy 几个可选的地址
阿里云
配置如下:

export GOPROXY=https://mirrors.aliyun.com/goproxy/
nexus社区提供的
配置如下:
export GOPROXY=https://gonexus.dev
goproxy.io 的
配置如下:
export GOPROXY=https://goproxy.io/
基于athens的公共服务
配置如下:
export GOPROXY=https://athens.azurefd.net

官方提供的(jfrog,golang)
export GOPROXY=https://gocenter.io
export GOPROXY=https://proxy.golang.org

七牛云赞助支持的
export GOPROXY=https://goproxy.cn
https://www.cnblogs.com/rongfengliang/p/11419210.html

6、go mod的学习
go mod 是Golang 1.11 版本引入的官方包(package)依赖管理工具,用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。
之前Golang 主要依靠vendorGOPATH来管理依赖库,vendor相对主流,但现在官方更提倡go mod
下载官方包1.11(及其以上版本将会自动支持gomod) 默认GO111MODULE=auto(auto是指如果在gopath下不启用mod)

Golang 提供一个环境变量 GO111MODULE 来设置是否使用mod,它有3个可选值,分别是off, on, auto(默认值),具体含义如下:

off: GOPATH mode,查找vendor和GOPATH目录
on:module-aware mode,使用 go module,忽略GOPATH目录
auto:如果当前目录不在$GOPATH 并且 当前目录(或者父目录)下有go.mod文件,则使用 GO111MODULE, 否则仍旧使用 GOPATH mode。
修改 GO111MODULE 的值的语句是:set GO111MODULE=on 。

在使用模块的时候, GOPATH 是无意义的,不过它还是会把下载的依赖储存在 GOPATH/src/mod 中,也会把 go install 的结果放在 GOPATH/bin(如果 GOBIN 不存在的话)

go mod download 下载模块到本地缓存,缓存路径是 $GOPATH/pkg/mod/cache
go mod edit 是提供了命令版编辑 go.mod 的功能,例如 go mod edit -fmt go.mod 会格式化 go.mod
go mod graph 把模块之间的依赖图显示出来
go mod init 初始化模块(例如把原本dep管理的依赖关系转换过来)
go mod tidy 增加缺失的包,移除没用的包
go mod vendor 把依赖拷贝到 vendor/ 目录下
go mod verify 确认依赖关系
go mod why 解释为什么需要包和模块

注意有几个坑的地方:

(1)go mod 命令在 $GOPATH 里默认是执行不了的,因GO111MODULE 的默认值是 auto。默认在$GOPATH 里是不会执行, 如果一定要强制执行,就设置环境变量为 on。*
(2)go mod init 在没有接module名字的时候是执行不了的,会报错 go: cannot determine module path for source directory。可以这样执行:
$ go mod init github.com/jiajunhuang/hello

https://blog.csdn.net/zzhongcy/article/details/97243826
学习资料:
https://zhuanlan.zhihu.com/p/103534192
https://www.jianshu.com/p/1da8b06d7b10

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值