Go?modules?replace解決Go依賴引用問題
為什么會用到 replace
取名是一個很有講究的事情,但每個人都不一樣。
- 一開始,我寫了一個 A 項目,代碼倉名稱為 project-alpha
- 但 go.mod 里的 package 設(shè)置的是 github.com/k8scat/alpha,
- 當(dāng)在另一項目 B 中想要引用 A 項目的代碼時,一般來說,用的是 github.com/k8scat/project-alpha
- 因為 go get 會使用 git 去,但由于 package 和代碼倉的名稱不一樣
需要使用 replace 進行轉(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 進行設(shè)置 replace:
go mod edit -replace github.com/k8scat/alpha=github.com/k8scat/project-alpha@v1.0.0
注意:該命令只會設(shè)置 replace,require 需要另外設(shè)置,且 require 的依賴版本被忽略,使用 replace 的依賴版本。
replace 的其他使用場景
解決 golang.org 依賴無法下載的問題
go mod edit -replace golang.org/x/crypto=github.com/golang/crypto@v0.0.0-20160511215533-1f3b11f56072
注意:這里目標依賴的版本號必須符合 SemVer 規(guī)范,不能是 master 和 latest(go get 可以用)
參考資料
以上就是Go modules replace解決Go依賴引用問題的詳細內(nèi)容,更多關(guān)于Go modules replace依賴引用的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
VsCode下開發(fā)Go語言的環(huán)境配置超詳細圖文詳解
vscode是一款跨平臺、輕量級、插件多的開源IDE,在vscode不僅可以配置C/C++、Python、R、Ruby等語言的環(huán)境,還可以配置Go語言的環(huán)境,下面這篇文章主要給大家介紹了關(guān)于VsCode下開發(fā)Go語言的環(huán)境配置,需要的朋友可以參考下2024-03-03golang?chan傳遞數(shù)據(jù)的性能開銷詳解
這篇文章主要為大家詳細介紹了Golang中chan在接收和發(fā)送數(shù)據(jù)時因為“復(fù)制”而產(chǎn)生的開銷,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下2024-01-01