日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無(wú)先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語(yǔ)言 正文

Go?modules?replace解決Go依賴引用問題_Golang

作者:K8sCat ? 更新時(shí)間: 2022-08-10 編程語(yǔ)言

為什么會(huì)用到 replace

取名是一個(gè)很有講究的事情,但每個(gè)人都不一樣。

  • 一開始,我寫了一個(gè) A 項(xiàng)目,代碼倉(cāng)名稱為 project-alpha
  • 但 go.mod 里的 package 設(shè)置的是 github.com/k8scat/alpha,
  • 當(dāng)在另一項(xiàng)目 B 中想要引用 A 項(xiàng)目的代碼時(shí),一般來說,用的是 github.com/k8scat/project-alpha
  • 因?yàn)?go get 會(huì)使用 git 去,但由于 package 和代碼倉(cāng)的名稱不一樣

需要使用 replace 進(jìn)行轉(zhuǎn)換一下:

package github.com/k8scat/beta
require github.com/k8scat/alpha v0.0.0
replace github.com/k8scat/alpha github.com/k8scat/project-alpha v1.0.0

使用 go mod edit 進(jìn)行設(shè)置 replace:

go mod edit -replace github.com/k8scat/alpha=github.com/k8scat/project-alpha@v1.0.0

注意:該命令只會(huì)設(shè)置 replace,require 需要另外設(shè)置,且 require 的依賴版本被忽略,使用 replace 的依賴版本。

replace 的其他使用場(chǎng)景

解決 golang.org 依賴無(wú)法下載的問題

go mod edit -replace golang.org/x/crypto=github.com/golang/crypto@v0.0.0-20160511215533-1f3b11f56072

注意:這里目標(biāo)依賴的版本號(hào)必須符合 SemVer 規(guī)范,不能是 master 和 latest(go get 可以用)

參考資料

  • go get 源碼
  • go modules 中使用 replace 用法
  • Semantic Versioning

原文鏈接:https://juejin.cn/post/6993603894739730463

欄目分類
最近更新