0%

golang第三方包发布详细流程

发布golang第三方包

事情是这样的,随着公司的业务的增长。各种重复的工作越来约多。CV久了就想在进一步的那啥,毕竟我懒,不是。我就想着能不能把那些重复cv的干脆写成一个第三方包,进行调用。咱不谈那些啥封装啥的,我也想过,我也做过。但无论咋封装,总不可能跨项目吧,还是需要。。。

所幸,还是有方法的,来吧,让我们发表第一个golang工具包

创建项目仓库

  1. 首先输入仓库的名字,我这里输入simpleExample,用来做演示
  2. 这里选择public,公开。要不并不好拉
  3. 选择需要添加的文件(可选)
  4. 鼠标左键点击create repository创建此仓库

完成后就有一个名为simpleExample的项目仓库,如下图所示。

如果第三步全都没选的话就是另外一个图了

这一步还是很简单的,毕竟github,全球最大的程序员交友网站不是。2110年了相信大家还是都会用的,是实在不会的,可自行百度,或者Google。

拉取仓库,编辑示例代码

第一步,鼠标左键点击code

第二步,点击后面类似于粘贴板的东西,复制https的URL

然后在cd到GOPATH中使用git,把这个项目clone下来

例如,我在这里的使用的git命令如下

1
git clone https://github.com/Golzaes/simpleExample.git

执行成功后使用 ls命令查看一下

使用编辑器打开simpleExample这个项目文件夹,如下图所示

go module初始化

1
2
+ go mod init "github.com/Golzaes/simpleExample"
- go mod init "github.com/组织名/项目名"

注意:这里的一定是"github.com/组织名/项目名"这样的格式

创建文件夹与示例代码

1
2
3
4
5
6
7
8
9
10
11
12
// 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,首字母必须大写!!!

否则无法再外部调用此函数

来个简单的单元测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// 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

1
2
3
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初始化、创建文件夹就不过多赘述了

下载我们发布的包

1
go get github.com/Golzaes/simpleExample/exampleCode

在项目中import 这个包

小结

本文从创建仓库开始到发布第三方包后到使用第三方包,这样我们就可以跨项目使用啦。

如果测试未完成,请重新查阅。尤其是注意点!!!