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

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

如何解決本地模塊的傳遞依賴

如何解決本地模塊的傳遞依賴

Go
森欄 2023-08-14 17:15:57
在某個隨機文件夾中,有 3 個文件夾 a、b、c。每個文件夾都包含一個 mod 文件。mod 文件包含以下內容。go.mod 里面module ago 1.13b 內的 go.modmodule bgo 1.13require a v0.0.0replace a v0.0.0 => ./../ac 內的 go.modmodule cgo 1.13require b v0.0.0replace b v0.0.0 => ./../b模塊 b 沒有拋出任何錯誤。但模塊 c 拋出錯誤go: [email protected] [email protected]: unrecognized import path "a" (import path does not begin with hostname)每個模塊的模塊名稱中都必須有一個點(.)。“一些隨機文件夾”更改為 example.com?,F在 example.com 命名的文件夾包含所有 abc 文件夾。這是模塊現在的樣子模塊A看起來像module example.com/ago 1.13模塊 B 看起來像module example.com/bgo 1.13require example.com/a v0.0.0replace example.com/a v0.0.0 => ../a模塊 C 看起來像module example.com/cgo 1.13require example.com/b v0.0.0replace example.com/b v0.0.0 => ../b太糟糕了!錯誤!go: example.com/[email protected] requiresexample.com/[email protected]: unrecognized import path "example.com/a" (https fetch: Get https://example.com/a?go-get=1: dial tcp 208.73.210.202:443: connect: connection refused)本地模塊的傳遞依賴如何工作?為什么 Go 要訪問 example.com 來引入模塊?到底是怎么回事?
查看完整描述

1 回答

?
胡子哥哥

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

Go Wiki:模塊:go.mod

exclude指令replace僅在當前(“主”)模塊上運行。構建主模塊時,將忽略主模塊以外的模塊中的指令exclude。replace因此, and語句允許主模塊完全控制其自己的replace構建exclude,而不受依賴項的完全控制。(

同樣在命令中:主模塊和構建列表:

主模塊的 go.mod 文件通過 require、replace 和 except 語句定義了可供 go 命令使用的精確包集。通過以下 require 語句找到的依賴模塊也有助于定義該組包,但只能通過其 go.mod 文件的 require 語句:依賴模塊中的任何替換和排除語句都將被忽略。因此,替換和排除語句允許主模塊完全控制其自己的構建,而不受依賴項的完全控制。

a構建模塊時找不到包c,因此該go工具嘗試解決它,嘗試下載它。這就是為什么它嘗試將包名稱解釋為應以主機名開頭的名稱。

您不需要將包重命名aexample.com/a,但必須在s中添加一個replace指令來告訴包所在的位置。cgo.moda


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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