Go Web服务构建失败:提示包不在GOROOT/GOPATH问题求助
问题解决方法
核心原因
你执行go build时指定了具体的main.go文件路径,Go会忽略当前目录的go.mod,转而将当前目录视为临时工作区,无法正确解析myproject/...的模块导入路径。另外Linux是大小写敏感系统,Windows下不敏感的路径大小写差异,在Linux下会触发找不到包的错误。
解决步骤
用包路径代替具体文件路径执行构建:
在项目根目录(/var/www/develop/project.id)执行:go build -o main ./folder/subfolder这种方式会让Go识别根目录的
go.mod,正确关联myproject模块,解析所有内部导入。检查路径大小写一致性:
核对所有import myproject/xxx/xxx中的路径大小写,和Linux系统中实际文件夹、文件名完全一致(比如Folder和folder在Linux下是两个不同路径)。清理模块缓存(可选):
如果上述操作无效,清理模块缓存后重新同步依赖:go clean -modcache go mod tidy
内容的提问来源于stack exchange,提问作者Truxaf
相关产品推荐
相关产品推荐

