欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2020年11月23日 10:35:11   作者:xiaoliizi  
這篇文章主要介紹了golang使用 gomodule 在公共測試環(huán)境管理go的依賴,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

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

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

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

一、go 工程配置

既然是協(xié)同開發(fā),工程我們就建議使用 go module 對依賴包進(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,并且會生成一個go.sum 文件。

go.mod 文件
go.sum 文件

期間可能會因為import 編寫不規(guī)范,遇到一些報錯,詳見踩坑記錄。

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

3、保存項目依賴到 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 之后報這個錯誤
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 下載會自動進(jìn)行依賴,并進(jìn)行編譯放到pkg 庫。

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

在這里插入圖片描述

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

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

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

相關(guān)文章

  • Golang日志操作庫zap的使用詳解

    Golang日志操作庫zap的使用詳解

    zap?是?uber?開源的一個高性能,結(jié)構(gòu)化,分級記錄的日志記錄包,本文主要為大家詳細(xì)介紹了zap的具體使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • Go?1.21中引入的新包maps和cmp功能作用詳解

    Go?1.21中引入的新包maps和cmp功能作用詳解

    這篇文章主要為大家介紹了Go?1.21中引入的新包maps和cmp功能作用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • 一站式解決方案:在Windows和Linux上快速搭建Go語言開發(fā)環(huán)境

    一站式解決方案:在Windows和Linux上快速搭建Go語言開發(fā)環(huán)境

    本文將介紹如何在Windows和Linux操作系統(tǒng)下搭建Go語言開發(fā)環(huán)境,以幫助您更高效地進(jìn)行Go語言開發(fā),需要的朋友可以參考下
    2023-10-10
  • Go實現(xiàn)文件分片上傳

    Go實現(xiàn)文件分片上傳

    這篇文章主要為大家詳細(xì)介紹了Go實現(xiàn)文件分片上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Golang常用環(huán)境變量說明與設(shè)置詳解

    Golang常用環(huán)境變量說明與設(shè)置詳解

    這篇文章主要介紹了Golang常用環(huán)境變量說明與設(shè)置,需要的朋友可以參考下
    2020-02-02
  • 淺談Go語言中字符串和數(shù)組

    淺談Go語言中字符串和數(shù)組

    這篇文章主要簡單介紹了Go語言中字符串和數(shù)組的使用方法和申明方式,需要的朋友可以參考下
    2015-01-01
  • Go設(shè)計模式原型模式考查點及使用詳解

    Go設(shè)計模式原型模式考查點及使用詳解

    這篇文章主要為大家介紹了Go設(shè)計模式原型模式考查點及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 如何在?Go語言中使用日志包

    如何在?Go語言中使用日志包

    這篇文章主要介紹了如何在?Go語言中使用日志包,日志文件就是一種快速找到這些?bug,更好地了解程序工作狀態(tài)的方法,下文基于go語言介紹該詳細(xì)需要的小伙伴可以參考一下
    2022-04-04
  • 使用Go實現(xiàn)健壯的內(nèi)存型緩存的方法

    使用Go實現(xiàn)健壯的內(nèi)存型緩存的方法

    這篇文章主要介紹了使用Go實現(xiàn)健壯的內(nèi)存型緩存,本文比較了字節(jié)緩存和結(jié)構(gòu)體緩存的優(yōu)劣勢,介紹了緩存穿透、緩存錯誤、緩存預(yù)熱、緩存?zhèn)鬏?、故障轉(zhuǎn)移、緩存淘汰等問題,并對一些常見的緩存庫進(jìn)行了基準(zhǔn)測試,需要的朋友可以參考下
    2022-05-05
  • Golang中的內(nèi)存泄漏你真的理解了嗎

    Golang中的內(nèi)存泄漏你真的理解了嗎

    內(nèi)存泄漏是編程中常見的問題,會對程序的性能和穩(wěn)定性產(chǎn)生嚴(yán)重影響,本文將深入詳解?Golang?中的內(nèi)存泄漏的原因、檢測方法以及避免方法,希望對大家有所幫助
    2023-12-12

最新評論