2 回答

TA貢獻2065條經驗 獲得超14個贊
這是您正在尋找的修復程序,我測試了以下文件,它可以正常工作,go.mod
module test
go 1.14
replace periph.io/x/devices/v3 => github.com/lutzky/devices/v3 v3.6.9-newfeature
require (
periph.io/x/devices/v3 v3.6.9 // indirect
)
我首先安裝,periph.io/x/devices/v3
go get periph.io/x/devices/v3
然后我在 ,
格式中插入了替換:go.modreplace periph.io/x/devices/v3 => github.com/lutzky/devices/v3 mainreplace <original_module> => <forked_repo> <branch>
然后我就跑了。之后,替換指令中的替換指令被交換,這是分叉存儲庫分支上的最新標記,從而為您提供了上面看到的內容。go getmainv3.6.9-newfeaturemain

TA貢獻1803條經驗 獲得超3個贊
多虧了 ramaraja-ramanujan@ 的回答和更多的調試,我找到了答案。
TL;DR - 正確答案是:
replace periph.io/x/devices/v3 v3.6.9 => github.com/lutzky/devices/v3 main
// this part was missing ^^^
這將在構建時立即起作用,并且(或)將更改為特定標記。有幾個有趣的旁注:go mod tidygo getmain
Go 代理
標簽是我自己的;我創建它是為了讓它工作。我已經刪除了它,但不斷替換為 - 無論我清除了多少緩存!運行它原來是在聯系 http://proxy.golang.org。為了禁用此功能,我運行了.這用偽版本替換了該行。請注意,這與我的分叉中的當前提交相匹配,而我的分叉和原始存儲庫都沒有 - 它似乎是從現有提交開始并遞增的。v3.6.9-newfeaturego mod tidymainv3.6.9-newfeaturestracegoGOPROXY=direct go getv3.6.10-0.20210508194004-cae0146d8900mainv3.6.10v3.6.9
不是子目錄/v3
實際上,源存儲庫(https://github.com/periph/devices)沒有子目錄。我認為正在發生的事情是該域正在做一些詭計 - 確實要使用瀏覽器 http://periph.io/x/devices/v3 確實有效。但是,Go 的分辨率似乎在模塊路徑中采用 final,在這種情況下,不指示子目錄(但實際上是對標記名稱的限制)。這顯然是允許的,并且在 https://golang.org/ref/mod 中進行了討論,但它并不完全簡單。v3periph.io/v3
- 2 回答
- 0 關注
- 105 瀏覽
添加回答
舉報