最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

最終總結(jié):項(xiàng)目采用 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,并且會(huì)生成一個(gè)go.sum 文件。

go.mod 文件
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 庫。

解決方法:在開發(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 在公共測試環(huán)境管理go的依賴的實(shí)例詳解的文章就介紹到這了,更多相關(guān)golang在公共測試環(huán)境管理go的依賴內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文帶你了解Go語言標(biāo)準(zhǔn)庫strings的常用函數(shù)和方法

    一文帶你了解Go語言標(biāo)準(zhǔn)庫strings的常用函數(shù)和方法

    strings?庫包含了許多高效的字符串常用操作的函數(shù)和方法,巧用這些函數(shù)與方法,能極大的提高我們程序的性能。本文就來和大家分享一下Go標(biāo)準(zhǔn)庫strings的常用函數(shù)和方法,希望對大家有所幫助
    2022-11-11
  • 詳解Go語言各種常見類型的默認(rèn)值和判空方法

    詳解Go語言各種常見類型的默認(rèn)值和判空方法

    本文主要介紹了詳解Go語言各種常見類型的默認(rèn)值和判空方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • golang socket斷點(diǎn)續(xù)傳大文件的實(shí)現(xiàn)方法

    golang socket斷點(diǎn)續(xù)傳大文件的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇golang socket斷點(diǎn)續(xù)傳大文件的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Golang內(nèi)存泄漏場景以及解決方案詳析

    Golang內(nèi)存泄漏場景以及解決方案詳析

    golang中內(nèi)存泄露的發(fā)現(xiàn)與排查一直是來是go開發(fā)者頭疼的一件事,下面這篇文章主要給大家介紹了關(guān)于Golang內(nèi)存泄漏場景以及解決的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • 詳解Go中的高效切片拼接和Go1.22提供的新方法

    詳解Go中的高效切片拼接和Go1.22提供的新方法

    在?Go?語言中,切片拼接是一項(xiàng)常見的操作,但如果處理不當(dāng),可能會(huì)導(dǎo)致性能問題或意外的副作用,本文將詳細(xì)介紹幾種高效的切片拼接方法,希望對大家有所幫助
    2024-01-01
  • 分布式架構(gòu)在Go語言網(wǎng)站的應(yīng)用

    分布式架構(gòu)在Go語言網(wǎng)站的應(yīng)用

    分布式架構(gòu)是目前應(yīng)對高流量、高并發(fā)的重要解決方案,分布式架構(gòu)的核心思想是分而治之,將單臺(tái)服務(wù)器的資源劃分為多臺(tái)服務(wù)器進(jìn)行協(xié)同完成,分布式架構(gòu)應(yīng)用于Go語言網(wǎng)站中既能提升服務(wù)速度,又能降低了服務(wù)器宕機(jī)的風(fēng)險(xiǎn)
    2024-01-01
  • 使用golang進(jìn)行http,get或postJson請求

    使用golang進(jìn)行http,get或postJson請求

    這篇文章主要為大家詳細(xì)介紹了如何使用golang進(jìn)行http,get或postJson請求,文中的示例代碼簡潔易懂,具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解一下
    2023-12-12
  • goFrame的隊(duì)列g(shù)queue對比channel使用詳解

    goFrame的隊(duì)列g(shù)queue對比channel使用詳解

    這篇文章主要為大家介紹了goFrame的gqueue對比channel使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Go語言操作etcd的示例詳解

    Go語言操作etcd的示例詳解

    etcd是使用Go語言開發(fā)的一個(gè)開源的、高可用的分布式key—value存儲(chǔ)系統(tǒng),可以用于配置共享和服務(wù)的注冊和發(fā)現(xiàn),下面我們就來看看Go語言是如何操作etcd的吧
    2024-03-03
  • Go語言單控制器和多控制器使用詳解

    Go語言單控制器和多控制器使用詳解

    這篇文章主要為大家詳細(xì)介紹了Go語言單控制器和多控制器的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07

最新評論

平顺县| 梁山县| 漠河县| 赣榆县| 绵竹市| 蚌埠市| 沈丘县| 肇东市| 溧水县| 西乌珠穆沁旗| 进贤县| 翁源县| 太和县| 德清县| 眉山市| 安宁市| 临清市| 青铜峡市| 迭部县| 虎林市| 陆川县| 临漳县| 桐乡市| 襄城县| 洪雅县| 防城港市| 甘谷县| 增城市| 那坡县| 虞城县| 偏关县| 绥化市| 五寨县| 白朗县| 桃园县| 科技| 迁西县| 文安县| 广灵县| 武汉市| 沂水县|