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

執(zhí)行g(shù)o?vendor第三方包版本沖突問題解決

 更新時間:2022年07月15日 14:44:04   作者:Airy  
這篇文章主要為大家介紹了執(zhí)行g(shù)o?vendor時,第三方包go版本沖突問題的解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

問題癥狀

我們使用 jenkins 腳本執(zhí)行 go build ,用來構(gòu)建線上服務(wù)器使用的二進(jìn)制文件。構(gòu)建過程中有這樣一個步驟:

go mod vendor

該步驟將以 go.mod 文件中寫明的包和版本為準(zhǔn)下載第三方依賴并保存到本地的 vendor 目錄。下載過程中將校驗 go.sum 中的 hash 值是否同文件 hash 一致。

在實際執(zhí)行中,遇到這樣的錯誤:

internal error: failed to find embedded files of github.com/marten-seemann/qtls-go1-18: //go:build comment without // +build comment

排查經(jīng)過

通過 qtls-go1-18 的倉庫名可以觀察到問題可能跟 go 1.18 的版本有關(guān)。

打開依賴的 github 倉庫可見簡介:

Go standard library TLS 1.3 implementation, modified for QUIC. For Go 1.18.

而我們構(gòu)建的環(huán)境 go env 輸出的版本為 1.16

在 go 1.18 的 release notes 中查找相關(guān)信息:

//go:build lines
Go 1.17 introduced //go:build lines as a more readable way to write build constraints, instead of // +build lines. As of Go 1.17, gofmt adds //go:build lines to match existing +build lines and keeps them in sync, while go vet diagnoses when they are out of sync.

Since the release of Go 1.18 marks the end of support for Go 1.16, all supported versions of Go now understand //go:build lines. In Go 1.18, go fix now removes the now-obsolete // +build lines in modules declaring go 1.18 or later in their go.mod files.

報錯的意思是 //go:build (1.18 版本支持) 必須同 // +build 一起出現(xiàn)。至此確認(rèn)問題原因。

解決辦法

業(yè)務(wù)代碼并沒有直接用到 qtls 包,且并沒有直接依賴 qtls-go1-18 對應(yīng)的 go 版本。此庫為非直接依賴引入的,需要找出是那個包引入了這個依賴。

go mod why github.com/marten-seemann/qtls-go1-18

可以查看是誰引入該依賴。從輸出可以看到:

# github.com/marten-seemann/qtls-go1-18
git.mycompany.com/group/projecta
git.mycompany.com/group/projectb
github.com/smallnest/rpcx/client
github.com/lucas-clemente/quic-go
github.com/marten-seemann/qtls-go1-18

通過 go mod graph 可以看到具體那個包的那個版本引入的

最終確認(rèn)是 quic-go 的 0.27 引入的。

在 go.mod 中排除掉 quic-go 0.27 即可。在 go.mod 中加一行。

exclude lucas-clemente/quic-go v0.27.0

總結(jié)和其他

  • 為什么 go mod vendor 會更新版本,理論上只會使用 go.mod 中制定的版本;
  • build 機(jī)器不需要 go mod vendor ,直接 go mod download 即可;
  • go mod vendor 同 go mod download 在依賴管理上有什么不同?

以上就是執(zhí)行g(shù)o vendor第三方包版本沖突問題解決的詳細(xì)內(nèi)容,更多關(guān)于go vendor版本沖突的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 舉例詳解Go語言中os庫的常用函數(shù)用法

    舉例詳解Go語言中os庫的常用函數(shù)用法

    這篇文章主要介紹了Go語言中os庫的常用函數(shù)用法,os函數(shù)的使用是Go語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10
  • Golang 使用http Client下載文件的實現(xiàn)方法

    Golang 使用http Client下載文件的實現(xiàn)方法

    今天小編就為大家分享一篇Golang 使用http Client下載文件的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • go語言中proto文件的使用

    go語言中proto文件的使用

    在Go語言編程中,.proto文件用于定義Protocol?Buffers數(shù)據(jù)結(jié)構(gòu)和服務(wù),是實現(xiàn)跨語言通信和高效序列化的關(guān)鍵,具有一定的參考價值,感興趣的可以了解一下
    2024-10-10
  • 基于go手動寫個轉(zhuǎn)發(fā)代理服務(wù)的代碼實現(xiàn)

    基于go手動寫個轉(zhuǎn)發(fā)代理服務(wù)的代碼實現(xiàn)

    這篇文章主要介紹了基于go手動寫個轉(zhuǎn)發(fā)代理服務(wù)的代碼實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Go語言break跳轉(zhuǎn)語句怎么使用

    Go語言break跳轉(zhuǎn)語句怎么使用

    這篇文章主要介紹了Go語言break跳轉(zhuǎn)語句怎么使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • 淺析Golang中閉包的創(chuàng)建與使用

    淺析Golang中閉包的創(chuàng)建與使用

    閉包是包括?Go?在內(nèi)的編程語言的一項強(qiáng)大功能,通過閉包,您可以在函數(shù)中封裝數(shù)據(jù),并通過函數(shù)的返回值訪問這些數(shù)據(jù),本文將介紹Go?中閉包的基礎(chǔ)知識,希望對大家有所幫助
    2023-11-11
  • 聊聊go xorm生成mysql的結(jié)構(gòu)體問題

    聊聊go xorm生成mysql的結(jié)構(gòu)體問題

    這篇文章主要介紹了go xorm生成mysql的結(jié)構(gòu)體問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-03-03
  • golang中實現(xiàn)給gif、png、jpeg圖片添加文字水印

    golang中實現(xiàn)給gif、png、jpeg圖片添加文字水印

    這篇文章主要介紹了golang中實現(xiàn)給gif、png、jpeg圖片添加文字水印,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 用Go語言編寫一個簡單的分布式系統(tǒng)

    用Go語言編寫一個簡單的分布式系統(tǒng)

    這篇文章主要介紹了用Go語言編寫一個簡單的分布式系統(tǒng),文中的代碼示例講解的非常詳細(xì),對我們的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴跟著小編一起來看看吧
    2023-08-08
  • 使用GO語言實現(xiàn)Mysql數(shù)據(jù)庫CURD的簡單示例

    使用GO語言實現(xiàn)Mysql數(shù)據(jù)庫CURD的簡單示例

    本文主要介紹了使用GO語言實現(xiàn)Mysql數(shù)據(jù)庫CURD的簡單示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評論