亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

找到并更換 Go 模塊,但不是必需的

找到并更換 Go 模塊,但不是必需的

Go
肥皂起泡泡 2022-08-15 10:53:53
當我嘗試構建我的go代碼時,我遇到了一個奇怪的錯誤。$ make installgo version go1.16 windows/amd64bin/check_go_version 1.14.4plugin/loader/preload.sh > plugin/loader/preload.gogo fmt plugin/loader/preload.go >/dev/nullgo install "-asmflags=all='-trimpath=C:\Users\Deepak Dash\go\src'" "-gcflags=all='-trimpath=C:\Users\Deepak Dash\go\src'" -ldflags="-X "github.com/ipfs/go-ipfs".CurrentCommit=8f9a2b7-dirty" ./cmd/ipfscmd\ipfs\daemon.go:32:2: module github.com/ipfs/go-saas-endpoint provides package github.com/ipfs/go-saas-endpoint and is replaced but not required; to add it:        go get github.com/ipfs/go-saas-endpointmake: *** [cmd/ipfs/Rules.mk:37: cmd/ipfs-install] Error 1我以前使用過go.mods。我已將 GitHub 包替換為本地模塊。它正在檢測本地包。謝謝,迪帕克·達什
查看完整描述

1 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

這是一個 Go 1.16 問題,目前正在 golang/go 問題 44529 中進行調查

它包括Jay Conrod的評論

go mod tidy并且都可能通過網絡查找任何所需模塊未提供的導入包。
如果在本地替換模塊,go命令將首先查找該命令,但我認為它可能仍然會轉到網絡以獲取模塊路徑的其他前綴。go get

相反,您可以在替換不存在的版本時添加對該版本的要求:

go mod edit -require example.com/[email protected] -replace example.com/[email protected]=../local

添加替換模塊(即使是左側沒有版本的替換模塊)也不會自動將該模塊添加到構建列表中。
如果是這樣,該命令將讀取其文件并應用其要求。這可能會影響其他模塊的選定版本,即使被替換的模塊沒有提供任何軟件包。gogo.mod

谷歌的Bryan C. Mills補充說

go mod tidy如果可以添加替換的模塊,則永遠不要進行網絡查找。(請參閱 import.go#queryImp())

go get另一方面,將執行網絡查找以識別真正的最新版本,并考慮您的替換(query.go#Versions()),然后該版本將被替換而不是下載。
它這樣做,以便 go get 添加的最新版本始終與 一致,并且(如果可能)您的 require 指令始終為下游使用者(如果有)指定有效版本,以便它們在需要您的模塊時不會中斷。(下游消費者不會選擇您的替換指令,因此他們需要一個有效的版本。go list -m [?]@latest

如果未對相關存儲庫使用代理,則該查找可能涉及克隆上游存儲庫。因此,這可能是一個非常昂貴的操作。(請注意,go 命令的官方發行版默認使用,但命令的 Fedora 分支不使用。proxy.golang.orggo

如果該網絡查找失敗,則還將回退到替換版本(query.go#Latest()go get)


查看完整回答
反對 回復 2022-08-15
  • 1 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號