我對 golang 還很陌生,并且在創建新模塊時遇到了一些問題
我想在我的主包中添加一個 git 子模塊,以便我可以同時作業并提交兩個包
該模塊http_fs被添加為像這樣的 git 子模塊
git submodule add [email protected]:xxx/http_fs.git repo/http_fs
主包
package main
import "repo/http_fs"
go.modforhttp_fs模塊看起來像這樣
module github.com/xxx/http_fs
go 1.19
當我嘗試運行主包時go run main.go出現此錯誤
package repo/http_fs is not in GOROOT (/usr/local/go/src/repo/http_fs)
檔案結構
./main.go // main package
./repo/http_fs/http_fs.go
更新
go.mod在主包中
module main
go 1.19
replace github.com/xxx/http_fs v1 => ./repo/http_fs
uj5u.com熱心網友回復:
錯誤的原因
package repo/http_fs is not in GOROOT (/usr/local/go/src/repo/http_fs)
是go.modin/usr/local/go/src/repo/http_fs宣告模塊github.com/xxx/http_fs,而不是repo/http_fs.
您需要匯入與 中指定的完全相同的模塊go.mod,即github.com/xxx/http_fs
在go.mod您的主模塊使用replace指令中:
replace github.com/xxx/http_fs v1.2.3 => ./repo/http_fs
Replace 指令告訴編譯器在哪里可以找到模塊的源代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/520340.html
標籤:去
