解决ubuntu下 vscode中go项目gopls requires a module at the root of your workspace. You can work with multiple modules by opening each one as a workspace folder. Improvements to this workflow will be coming soon (https://github.com/golang/go/issues/32394), and you can learn more here: https://github.com/golang/go/issues/36899.
适用于Go 1.18+
从 Go 1.18 开始,原生支持多模块工作区。这是通过go.work在父目录中存在一个文件来完成的。
对于目录结构,例如:
$ tree /my/parent/dir
/my/parent/dir
├── project-one
│ ├── go.mod
│ ├── project-one.go
│ └── project-one_test.go
└── project-two
├── go.mod
├── project-two.go
└── project-two_test.go
通过执行以下命令创建并填充文件go.mod:
go mod init github.com/username/projectname
通过执行以下命令创建并填充文件go work:
cd /my/parent/dir
go work init
go work use project-one
go work use project-two
这将go.work在您的父目录中添加一个文件,其中包含您标记为使用的目录列表:
go 1.18
use (
./project-one
./project-two
)