实现go module的初始化:
1.生成包
在正式了解Golang Modules之前,我们先速览一下其使用方式。
在$GOPATH之外的任意地方,创建一个文件夹:
$ mkdir -p /tmp/hello
$ cd /tmp/hello
然后初始化一个新的Module:
$ go mod init github.com/gspgsp/el-api
输出:
go: creating new go.mod: module github.com/gspgsp/el-api
go.mod内容为:
module github.com/gspgsp/el-api //代表项目的根目录,这里是一个远程地址,而不是之前的本地地址,这样可以让别的项目调用,如果是gitlab的话,就可以私有化了
go 1.17
然后git init 生成git文件,再提交到远程地址即可
2.调用github.com/gspgsp/el-api
在其它项目中先 import ,然后 go mod tidy 即可
3.如果是私有仓库或者是提交了但是国内仓库代理没有及时拉取你的仓库到镜像,那么可以直接配置:
export GOPRIVATE=gitlab.com/xxx 或者github.com/xxx即可
4.由于配置了私有仓库,那么在 go mod tidy 或者 go get 的时候 需要登录 输入用户名和密码,这个在自动发布项目就会有问题,解决办法就是在 ~/.netrc 文件里记录私
有仓库的登录信息,如下就是记录了 gitee下的账号信息,如果执行 git pull 就不用再输入账号密码信息;go mod tidy 或者 go get 实际上也是调用 git 命令拉取相关的
依赖,也就不用再输入账号密码信息了,这个在做 k8s 的项目自动发布的时候很有用,后面得分项目我会用大
[root@k8smaster ~]# vim ~/.netrc
machine gitee.com
login xxxxx@qq.com
password xxxyyyx=zzz
如果有多个 server 就重复上面的三行, 分别输入对应的服务器、 用户名和密码即可.
也可以把这三行写在同一行:machine gitee.com login xxxxx@qq.com password xxxyyyx=zzz
