前言
实话实说, github 作为这个球上顶级的代码托管平台, 公司/企业/开发者的认可和参与度是非常高的.
但是因为某些原因 特色墙, 国内使用 github 的体验不是非常好
- 速度慢
- 不靠谱同学的贸易政策
- 英文不是非常友好
比如我就是英文渣渣 - ...
而 go 的模块系统高度使用了 github, 以及很多非常有用的包也托管在 github,
随之而来的问题是, 国内, 使用 github 有的问题, 使用 go 模块系统全部一起中招了.
为此, 我们来试试如何把自己的 go 模块托管在 gitee 来更方便的使用.
相比之下使用 gitee 的优势:
- 速度快的多
网速就是生命 - 不怕不靠谱同学
- 母语贴心
- 可能模块少点
这是劣势, 需要你我他的努力 - ...
创建你的 go 模块
按照我的习惯, 我在我的电脑目录 E:goprojectssrcgitee.com aadis
目录下新建了一个 uuid
模块项目
└─uuid
.gitignore
doc.go
go.mod # 模块配置文件, 主要的就是这个
go.sum # 模块依赖计算, 通常请 git 忽略掉
README.md
uuid.go
uuid_test.go
我们来看看 go.mod
文件
module gitee.com/taadis/uuid
模块声明以 "路径/用户/模块" 这样的形式声明
就这么简单, 模块声明完成后, 本地测试通过, 然后 git push
到 gitee
发布你的 go 模块
一个模块随着时间和业务累积会有越来越多的版本, 那么怎么发布 go 的模块以及迭代版本呢
首先在 gitee 创建一个新仓库
同步本地仓库到远程仓库
需要发布版本的时候, 通过标签来实现
直接 git tag v0.0.1
, 然后 git push origin v0.0.1
更多的版本号累积即可
直接 git tag v0.0.2
, 然后 git push origin v0.0.2
使用你的 go 模块
来个简单的例子, 新建一个叫做 uuidtest
的项目, go get gitee.com/taadis/uuid v0.0.1
下载指定版本, 不指定版本号时会下载默认下载最新版本, 并记录到 go.mod
文件中
module uuidtest
require gitee.com/taadis/uuid v0.0.1
然后就可以欢乐的使用了
// main.go
package main
import (
"fmt"
"gitee.com/taadis/uuid"
)
func main() {
id := uuid.New()
fmt.Println(id)
}
GoDoc
GoDoc 是 go 提供的一个在线文档服务, 不需要你做任何多余的事情
直接在浏览器访问 https://godoc.org/模块名称
比如 https://godoc.org/gitee.com/taadis/uuid
即可看到你的 go 模块相关的源码中的文档