发布golang第三方包详细流程
事情是这样的,随着公司的业务的增长。各种重复的工作越来约多。CV久了就想在进一步的那啥,毕竟我懒,不是。我就想着能不能把那些重复cv的干脆写成一个第三方包,进行调用。咱不谈那些啥封装啥的,我也想过,我也做过。但无论咋封装,总不可能跨项目吧,还是需要。。。
所幸,还是有方法的,来吧,让我们发表第一个golang工具包
创建项目仓库
- 首先输入仓库的名字,我这里输入simpleExample,用来做演示
- 这里选择public,公开。要不并不好拉
- 选择需要添加的文件(可选)
- 鼠标左键点击create repository创建此仓库
完成后就有一个名为simpleExample的项目仓库,如下图所示。
如果第三步
全都没选的话就是另外一个图了
这一步还是很简单的,毕竟github,全球最大的程序员交友网站不是。2110年了相信大家还是都会用的,是实在不会的,可自行百度,或者Google。
拉取仓库,编辑示例代码
第一步,鼠标左键点击code
第二步,点击后面类似于粘贴板的东西,复制https的URL
然后在cd到GOPATH中使用git,把这个项目clone下来
例如,我在这里的使用的git命令如下
git clone https://github.com/Golzaes/simpleExample.git
执行成功后使用 ls
命令查看一下
使用编辑器打开simpleExample
这个项目文件夹,如下图所示
go module初始化
+ go mod init "github.com/Golzaes/simpleExample"
- go mod init "github.com/组织名/项目名"
注意:这里的一定是
"github.com/组织名/项目名"
这样的格式
创建文件夹与示例代码
// Example/example.go
package exampleCode
import "math/rand"
// ReadNumber create random number
func ReadNumber() int {
// random number range
rnr := 10
// returns, as an int, a non-negative pseudo-random number in [0,n)
return rand.Intn(rnr)
}
注意这里的函数名
ReadNumber
,首字母必须大写!!!否则无法再外部调用此函数
来个简单的单元测试
// Example/example_test.go
package exampleCode
import "testing"
func TestReadNumber(t *testing.T) {
tests := []struct {
name string
want int
}{
// TODO: Add test cases.
{
"exampleCode1",
1,
}, {
"exampleCode2",
2,
}, {
"exampleCode3",
3,
}, {
"exampleCode4",
4,
},{
"exampleCode5",
5,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := ReadNumber(); got != tt.want {
t.Errorf("ReadNumber() = %v, want %v", got, tt.want)
}
})
}
}
运行测试
有个测试过了,说明我们的代码没有问题,也可以外部调用
推送与发布代码
使用以下命令,提交与push
git add exampleCode/
git commit -am "add exampleCode"
git push origin master
仔细对比就会发现,这里多了个exampleCode
文件夹。到这里我们就已经将代码push到了github,接下来我们发布一个,这样我们可以在另外一个项目中以第三方包的形式使用
第一步,点击releases下面的create a new releases
先 填写标签号(常规格式是 x.y.z)例如我的v0.0.1
,
填写发表的标题,一般是项目名
填写简介
然后鼠标左键点击 左下方的publish release
,进行发布,发布完成后会自动跳转到如下图所示的发布栏
至此,发布部分就已经完成了。那么自己来测试一下这个第三方包
使用发布的第三方包
新建一个项目、go mod init初始化、创建文件夹就不过多赘述了
下载我们发布的包
go get github.com/Golzaes/simpleExample/exampleCode
在项目中import 这个包
小结
本文从创建仓库开始到发布第三方包后到使用第三方包,这样我们就可以跨项目使用啦。
如果测试未完成,请重新查阅。尤其是注意点!!!
- 点赞
- 收藏
- 关注作者
评论(0)