go Module管理

一、創(chuàng)建一個(gè)Module

1、新建模塊文件夾(它的目錄要在 GOPATH 之外,因?yàn)槟J(rèn)情況下,GOPATH 里面是禁用 modules 支持的)

$ mkdir testmod
$ cd testmod

2、現(xiàn)在還只是一個(gè)文件夾,如果要變成module,就需要初始化(上傳到github對(duì)外給他人使用的話,需要使用此默認(rèn)格式:github.com/github昵稱/module名)

$ go mod init github.com/chenycu/testmod
  1. 初始化git項(xiàng)目,并在github上新建repositories,本地倉庫添加遠(yuǎn)程地址
git init
git add *
git commit -m "first commit"
git remote add origin https://github.com/chenycu/testmod.git
git push -u origin master

現(xiàn)在任何想用這個(gè)包的人都可以通過go get命令獲取,在自己的module目錄下執(zhí)行如下命令

go get github.com/chenycu/testmod

獲取到的Module源碼在GOPATH/pkg/mod/目錄下

二、發(fā)布版本控制

版本號(hào)格式為v主要版本.次要版本.修訂版本 例如:v1.0.0
設(shè)置版本號(hào)我們使用git tag命令
考慮到兼容性,module的每一個(gè)主要版本我們最好新建一個(gè)分支來存放

$ git checkout -b v1
$ git push -u origin v1
$ git tag v1.0.0
$ git push --tags

這樣我們?cè)趍aster分支中修改代碼不會(huì)影響到主要版本,master中的問題修改完畢后,合并到v1分支,設(shè)置tag為v1.0.1重新push到v1遠(yuǎn)程分支后生效。

如果需要更新主要版本,最好的做法是,再新建一個(gè)分支v2,設(shè)置tag為v2.0.0提交。

三、更新Module

我們可以在自己的Module目錄下 使用go get 來更新 module:

  • 運(yùn)行 go get -u將會(huì)升級(jí)到最新的次要版本或者修訂版本(比如說,將會(huì)從 1.0.0 版本,升級(jí)到——舉個(gè)例子——1.0.1 版本,或者 1.1.0 版本,如果 1.1.0 版本存在的話)
  • 運(yùn)行 go get -u=patch 將會(huì)升級(jí)到最新的修訂版本(比如說,將會(huì)升級(jí)到 1.0.1 版本,但不會(huì)升級(jí)到 1.1.0 版本)
  • 運(yùn)行 go get package@version 將會(huì)升級(jí)到指定的版本號(hào)(比如說,github.com/chenycu/testmod@v1.0.1
四、下載Module

由于被墻的關(guān)系,下載module比較麻煩,但是go 1.12后有一個(gè)環(huán)境變量GOPROXY,我們可以直接在module目錄下執(zhí)行如下命令設(shè)置GOPROXY

set GOPROXY=https://goproxy.io

設(shè)完就可以下載被墻的包了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容