依賴包報錯 module declares its path as...
module declares its path 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/