发布golang第三方包
事情是這樣的,隨著公司的業(yè)務(wù)的增長。各種重復(fù)的工作越來約多。CV久了就想在進(jìn)一步的那啥,畢竟我懶,不是。我就想著能不能把那些重復(fù)cv的干脆寫成一個(gè)第三方包,進(jìn)行調(diào)用。咱不談那些啥封裝啥的,我也想過,我也做過。但無論咋封裝,總不可能跨項(xiàng)目吧,還是需要。。。
所幸,還是有方法的,來吧,讓我們發(fā)表第一個(gè)golang工具包
創(chuàng)建項(xiàng)目倉庫
完成后就有一個(gè)名為simpleExample的項(xiàng)目倉庫,如下圖所示。
如果第三步全都沒選的話就是另外一個(gè)圖了
這一步還是很簡單的,畢竟github,全球最大的程序員交友網(wǎng)站不是。2110年了相信大家還是都會(huì)用的,是實(shí)在不會(huì)的,可自行百度,或者Google。
拉取倉庫,編輯示例代碼
第一步,鼠標(biāo)左鍵點(diǎn)擊code
第二步,點(diǎn)擊后面類似于粘貼板的東西,復(fù)制https的URL
然后在cd到GOPATH中使用git,把這個(gè)項(xiàng)目clone下來
例如,我在這里的使用的git命令如下
git clone https://github.com/Golzaes/simpleExample.git執(zhí)行成功后使用 ls命令查看一下
使用編輯器打開simpleExample這個(gè)項(xiàng)目文件夾,如下圖所示
go module初始化
+ go mod init "github.com/Golzaes/simpleExample" - go mod init "github.com/組織名/項(xiàng)目名"注意:這里的一定是"github.com/組織名/項(xiàng)目名"這樣的格式
創(chuàng)建文件夾與示例代碼
// Example/example.go package exampleCodeimport "math/rand"// ReadNumber create random number func ReadNumber() int {// random number rangernr := 10// returns, as an int, a non-negative pseudo-random number in [0,n)return rand.Intn(rnr) }注意這里的函數(shù)名ReadNumber,首字母必須大寫!!!
否則無法再外部調(diào)用此函數(shù)
來個(gè)簡單的單元測試
// Example/example_test.go package exampleCodeimport "testing"func TestReadNumber(t *testing.T) {tests := []struct {name stringwant 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)}})} }運(yùn)行測試
有個(gè)測試過了,說明我們的代碼沒有問題,也可以外部調(diào)用
推送與發(fā)布代碼
使用以下命令,提交與push
git add exampleCode/ git commit -am "add exampleCode" git push origin master仔細(xì)對比就會(huì)發(fā)現(xiàn),這里多了個(gè)exampleCode文件夾。到這里我們就已經(jīng)將代碼push到了github,接下來我們發(fā)布一個(gè),這樣我們可以在另外一個(gè)項(xiàng)目中以第三方包的形式使用
第一步,點(diǎn)擊releases下面的create a new releases
先 填寫標(biāo)簽號(hào)(常規(guī)格式是 x.y.z)例如我的v0.0.1,
填寫發(fā)表的標(biāo)題,一般是項(xiàng)目名
填寫簡介
然后鼠標(biāo)左鍵點(diǎn)擊 左下方的publish release,進(jìn)行發(fā)布,發(fā)布完成后會(huì)自動(dòng)跳轉(zhuǎn)到如下圖所示的發(fā)布欄
至此,發(fā)布部分就已經(jīng)完成了。那么自己來測試一下這個(gè)第三方包
使用發(fā)布的第三方包
新建一個(gè)項(xiàng)目、go mod init初始化、創(chuàng)建文件夾就不過多贅述了
下載我們發(fā)布的包
go get github.com/Golzaes/simpleExample/exampleCode在項(xiàng)目中import 這個(gè)包
小結(jié)
本文從創(chuàng)建倉庫開始到發(fā)布第三方包后到使用第三方包,這樣我們就可以跨項(xiàng)目使用啦。
如果測試未完成,請重新查閱。尤其是注意點(diǎn)!!!
總結(jié)
以上是生活随笔為你收集整理的发布golang第三方包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python中的第三方包
- 下一篇: Maven发布轻量二方包