目錄
- 一、go 工程配置
- 1、初始化 go.mod 代碼
- 2、整理依賴
- 3、保存項目依賴到 vendor 目錄
- 二、服務器依賴管理
- 1、上傳所有依賴到服務器的GOPATH 目錄
- 2、編譯工程
- 三、踩坑記錄。。
背景:調(diào)試服務最好的方式就是直接上機實踐。對在公司的員工來說,在同一套服務上協(xié)同開發(fā)比在單獨的環(huán)境上開發(fā),應該會更有感覺。有問題可以一起發(fā)現(xiàn)并解決,也能夠一同開發(fā)需求。
但是,公司的測試機往往是沒辦法連外網(wǎng)的,而golang 的大部分工程都需要直接從github 上下載依賴,這就導致 依賴文件需要先提前上傳到開發(fā)機上。那么當開發(fā)機上需要運行多個golang 工程的時候,如何共享這些依賴,減少維護依賴庫的工作量呢?
這也是需要大家協(xié)作完成的~
最終總結:項目采用 go module + vendor 模式,服務器上使用統(tǒng)一的GOPATH 路徑。
一、go 工程配置
既然是協(xié)同開發(fā),工程我們就建議使用 go module 對依賴包進行管理了。這樣大家可以把依賴都放到統(tǒng)一的GOPATH,如果有新增依賴,直接放到GOPATH 目錄即可。
關于go module 的介紹
1、初始化 go.mod 代碼
在工程根目錄中,執(zhí)行 go mod init 工程的github地址,生成go.mod 文件。
示例:go mod init gitee.com/atamagaii/mygoproject
2、整理依賴
繼續(xù)在當前目錄,執(zhí)行 go mod tidy,整理工程的依賴。
正常情況下,執(zhí)行完成之后go.mod,并且會生成一個go.sum 文件。
期間可能會因為import 編寫不規(guī)范,遇到一些報錯,詳見踩坑記錄。
注意:go.mod 和 go.sum 文件都建議提交到git 上,這樣在多人協(xié)同開發(fā)一個項目的時候,能保證依賴版本的統(tǒng)一。
3、保存項目依賴到 vendor 目錄
直接執(zhí)行 go mod vendor 即可
詳細說明參考踩坑記錄。
vendor 目錄每次都可以在本地生成,因此不需要提交到git 上。
標準的工程目錄如下:
二、服務器依賴管理
1、上傳所有依賴到服務器的GOPATH 目錄
主要是 golang.org、github.com、gopkg.in 目錄
2、編譯工程
在自己工程的 src 目錄,執(zhí)行:
go build -o xxx xxx.go
三、踩坑記錄。。
1、PuerkitoBio 踩坑
執(zhí)行gobuild 之后報這個錯誤
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
這個包不知道為啥,通過 go get 下載會自動進行依賴,并進行編譯放到pkg 庫。
解決方法:在開發(fā)環(huán)境,先通過 go mod vendor 指令將項目本身的直接依賴放到vendor目錄。(這個目錄就可以不用提交了)
生成效果:
然后將這個目錄也放到服務器上,再執(zhí)行:
go build -mod=vendor -o xxx xxx.go
在modules.txt 中的依賴會優(yōu)先從vendor 目錄中查找。
到此這篇關于golang使用 gomodule 在公共測試環(huán)境管理go的依賴的實例詳解的文章就介紹到這了,更多相關golang在公共測試環(huán)境管理go的依賴內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- go自動下載所有的依賴包go module使用詳解
- Go外部依賴包從vendor,$GOPATH和$GOPATH/pkg/mod查找順序
- go mod 安裝依賴 unkown revision問題的解決方案