猿问

在主包中添加模块作为 git 子模块

我是 golang 的新手,在创建新模块时遇到了一些问题


我想在我的主包中添加一个 git 子模块,这样我就可以同时工作并提交到两个包


该模块http_fs像这样添加为 git 子模块


git submodule add git@github.com:xxx/http_fs.git repo/http_fs

主包


package main


import "repo/http_fs"

go.mod对于http_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


九州编程
浏览 87回答 1
1回答

哈士奇WWW

错误原因package repo/http_fs is not in GOROOT (/usr/local/go/src/repo/http_fs)是go.mod在/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_fsReplace 指令告诉编译器在哪里可以找到模块的源代码。
随时随地看视频慕课网APP

相关分类

Go
我要回答