Golang 編寫依賴包后使用報錯, 以及無法即使更新最新版本依賴


依賴包報錯 module declares its path as...

module declares its path as: 
but was required as:

今天將一部分共用的代碼提取出來, 放在 github 以單獨項目進行管理. 從另一個庫進行依賴的時候, 執行 go mod tidy 加載依賴, 報錯如上.

看了一下其他人的包, go.mod 文件內, module 的值應該與 github 路徑一致, 與引用的地方的寫法一致.

例如 https://github.com/gorilla/websocket 包, 里面 go.mod 中 module 的定義應該是 module github.com/gorilla/websocket, 在引用該包的時候, 應該使用 import "github.com/gorilla/websocket". 這三個地方應該是一致的. 如果不一致, 就會出現上面的依賴報錯, 意思是 import 引入的 github 地址, 下載下來的代碼, 聲明自己的名字和預期不一樣.

更新被依賴包代碼后, 使用 go mod tidy 無法拉取最新 version

環境變量:

export GO111MODULE=on

說明已經開啟了 v1.11+ 版本的 module 管理方式.

在更新了被依賴包之后, 想要在引用的地方更新

  • 直接使用 tidy 進行更新無效, 並沒有更新代碼.
  • 刪除 go.sum, 以及 go.mod 中對應的行后, 使用 tidy 進行更新無效
  • 刪除 $GOPATH/pkg/mod 文件夾的緩存, 使用 tidy 進行更新無效

后來找到, 在 ~/go/pkg/mod 下面, 仍然有一份緩存, 將其刪除; 同時將 $GOPATH/pkg/mod 刪除; 同時修改依賴 go.mod 相關記錄; 三者同時進行, 即可獲取到 github 剛剛的更新.

 

原文:

https://wumingxiaozu.com/2019/11/26/ComputerScience/Golang/Golang%20%E7%BC%96%E5%86%99%E4%BE%9D%E8%B5%96%E5%8C%85%E5%90%8E%E4%BD%BF%E7%94%A8%E6%8A%A5%E9%94%99,%20%E4%BB%A5%E5%8F%8A%E6%97%A0%E6%B3%95%E5%8D%B3%E4%BD%BF%E6%9B%B4%E6%96%B0%E6%9C%80%E6%96%B0%E7%89%88%E6%9C%AC%E4%BE%9D%E8%B5%96/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM