[英]Issue with using a modified version of a Go dependency
所以情況如下:
我有一個go-ipfs
。 這取決於go-ipfs-config
。 我需要修改go-ipfs-config
並使go-ipfs
依賴於我修改后的版本。
我分叉了go-ipfs-config
進行了更改,並確保將路徑更新為我的分叉版本的路徑,如此處所示。 我通過運行go build
確認這仍然可以成功構建
然后我更新了go-ipfs
go.mod
的 go.mod 以使用我的修改版本。 我使用replace
指令來表示這個意圖,可以在這里看到
這就是事情變得絕對掩體的地方,我不再確定發生了什么。
當我做go mod tidy
以獲取依賴項時,我得到以下 output:
go: finding module for package github.com/dadepo/go-ipfs-config
go: found github.com/dadepo/go-ipfs-config in github.com/dadepo/go-ipfs-config v0.5.3
瘋狂的是, v0.5.3
中不存在 v0.5.3!
還將以下行添加到 go.mod 中:
github.com/dadepo/go-ipfs-config v0.5.3 // indirect
甚至可以在這里看到
我已經運行go clean -modcache
和go clean -r
等命令,但似乎沒有解決問題!
有人知道我做錯了什么嗎? 以及如何實現使我的項目版本依賴於其依賴項的另一個修改版本的目標?
好的,這是因為我沒有意識到 Go lang 工具鏈中發生的一些事情。
顯然https://proxy.golang.org是一回事。 它是 google 運營的緩存模塊的服務,所以如果你發布了,刪除它,很可能該版本已經緩存在https://proxy.golang.org中。 這正是我的情況。 我發布了 0.5.3 版本,刪除了它,但它並沒有真正消失,因為 Google 緩存已經掌握了它。
因此,如果您看到不應該存在的版本。 這應該是您檢查的第一個地方。 此文檔鏈接還對代理以及如何調整它提供了更多信息。
我是根據我在打開報告此行為的問題上進行的對話發現的。 如果您好奇,可以在這里查看。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.