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

學無先后,達者為師

網站首頁 編程語言 正文

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

作者:K8sCat ? 更新時間: 2022-08-10 編程語言

為什么會用到 replace

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

  • 一開始,我寫了一個 A 項目,代碼倉名稱為 project-alpha
  • 但 go.mod 里的 package 設置的是 github.com/k8scat/alpha,
  • 當在另一項目 B 中想要引用 A 項目的代碼時,一般來說,用的是 github.com/k8scat/project-alpha
  • 因為 go get 會使用 git 去,但由于 package 和代碼倉的名稱不一樣

需要使用 replace 進行轉換一下:

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 進行設置 replace:

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

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

replace 的其他使用場景

解決 golang.org 依賴無法下載的問題

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

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

參考資料

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

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

欄目分類
最近更新