濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > golang使用 gomodule 在公共測(cè)試環(huán)境管理go的依賴的實(shí)例詳解

golang使用 gomodule 在公共測(cè)試環(huán)境管理go的依賴的實(shí)例詳解

熱門標(biāo)簽:赤峰電銷 谷歌美發(fā)店地圖標(biāo)注 貴州電話智能外呼系統(tǒng) 地圖區(qū)域圖標(biāo)注后導(dǎo)出 官渡電銷外呼管理系統(tǒng)怎么收費(fèi) 利用地圖標(biāo)注位置 杭州人工智能電銷機(jī)器人費(fèi)用 400開頭電話怎樣申請(qǐng) 江蘇呼叫中心外呼系統(tǒng)有效果嗎

背景:調(diào)試服務(wù)最好的方式就是直接上機(jī)實(shí)踐。對(duì)在公司的員工來說,在同一套服務(wù)上協(xié)同開發(fā)比在單獨(dú)的環(huán)境上開發(fā),應(yīng)該會(huì)更有感覺。有問題可以一起發(fā)現(xiàn)并解決,也能夠一同開發(fā)需求。
但是,公司的測(cè)試機(jī)往往是沒辦法連外網(wǎng)的,而golang 的大部分工程都需要直接從github 上下載依賴,這就導(dǎo)致 依賴文件需要先提前上傳到開發(fā)機(jī)上。那么當(dāng)開發(fā)機(jī)上需要運(yùn)行多個(gè)golang 工程的時(shí)候,如何共享這些依賴,減少維護(hù)依賴庫(kù)的工作量呢?

這也是需要大家協(xié)作完成的~

最終總結(jié):項(xiàng)目采用 go module + vendor 模式,服務(wù)器上使用統(tǒng)一的GOPATH 路徑。

一、go 工程配置

既然是協(xié)同開發(fā),工程我們就建議使用 go module 對(duì)依賴包進(jìn)行管理了。這樣大家可以把依賴都放到統(tǒng)一的GOPATH,如果有新增依賴,直接放到GOPATH 目錄即可。

關(guān)于go module 的介紹

1、初始化 go.mod 代碼

在工程根目錄中,執(zhí)行 go mod init 工程的github地址,生成go.mod 文件。

示例:go mod init gitee.com/atamagaii/mygoproject

2、整理依賴

繼續(xù)在當(dāng)前目錄,執(zhí)行 go mod tidy,整理工程的依賴。
正常情況下,執(zhí)行完成之后go.mod,并且會(huì)生成一個(gè)go.sum 文件。


期間可能會(huì)因?yàn)閕mport 編寫不規(guī)范,遇到一些報(bào)錯(cuò),詳見踩坑記錄。

注意:go.mod 和 go.sum 文件都建議提交到git 上,這樣在多人協(xié)同開發(fā)一個(gè)項(xiàng)目的時(shí)候,能保證依賴版本的統(tǒng)一。

3、保存項(xiàng)目依賴到 vendor 目錄

直接執(zhí)行 go mod vendor 即可
詳細(xì)說明參考踩坑記錄。

vendor 目錄每次都可以在本地生成,因此不需要提交到git 上。

標(biāo)準(zhǔn)的工程目錄如下:

二、服務(wù)器依賴管理

 1、上傳所有依賴到服務(wù)器的GOPATH 目錄

主要是 golang.org、github.com、gopkg.in 目錄

2、編譯工程

在自己工程的 src 目錄,執(zhí)行:
go build -o xxx xxx.go

三、踩坑記錄。。

1、PuerkitoBio 踩坑

執(zhí)行g(shù)obuild 之后報(bào)這個(gè)錯(cuò)誤
go: github.com/PuerkitoBio/goquery@v1.5.1: reading github.com/PuerkitoBio/goquery/go.mod at revision v1.5.1: unknown revision v1.5.1
這個(gè)包不知道為啥,通過 go get 下載會(huì)自動(dòng)進(jìn)行依賴,并進(jìn)行編譯放到pkg 庫(kù)。

解決方法:在開發(fā)環(huán)境,先通過 go mod vendor 指令將項(xiàng)目本身的直接依賴放到vendor目錄。(這個(gè)目錄就可以不用提交了)
生成效果:

然后將這個(gè)目錄也放到服務(wù)器上,再執(zhí)行:
go build -mod=vendor -o xxx xxx.go

在modules.txt 中的依賴會(huì)優(yōu)先從vendor 目錄中查找。

到此這篇關(guān)于golang使用 gomodule 在公共測(cè)試環(huán)境管理go的依賴的實(shí)例詳解的文章就介紹到這了,更多相關(guān)golang在公共測(cè)試環(huán)境管理go的依賴內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • go自動(dòng)下載所有的依賴包go module使用詳解
  • Go外部依賴包從vendor,$GOPATH和$GOPATH/pkg/mod查找順序
  • go mod 安裝依賴 unkown revision問題的解決方案

標(biāo)簽:泰安 武漢 保定 黔西 鷹潭 松原 宜春 河池

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《golang使用 gomodule 在公共測(cè)試環(huán)境管理go的依賴的實(shí)例詳解》,本文關(guān)鍵詞  golang,使用,gomodule,在,公共,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《golang使用 gomodule 在公共測(cè)試環(huán)境管理go的依賴的實(shí)例詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于golang使用 gomodule 在公共測(cè)試環(huán)境管理go的依賴的實(shí)例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    奈曼旗| 云霄县| 黄山市| 柳州市| 锡林郭勒盟| 巴东县| 呼伦贝尔市| 连州市| 盐山县| 林周县| 县级市| 七台河市| 高雄县| 织金县| 军事| 扎赉特旗| 桂东县| 兴海县| 双鸭山市| 长沙县| 东莞市| 山东省| 敦煌市| 新安县| 锡林浩特市| 福贡县| 张北县| 土默特右旗| 旺苍县| 襄垣县| 酒泉市| 正阳县| 五河县| 遂昌县| 海阳市| 澎湖县| 漾濞| 吉林省| 甘德县| 内乡县| 仪陇县|