我们有一个使用旧 GOPATH 结构的旧 git 存储库。该存储库包含多个实用程序的代码,每个实用程序都有自己的 main.go。此外,它还包含一个带有多个子文件夹的“公共”文件夹,每个子文件夹都具有各种共享位功能。结果是这样的:
progOne\main.go (and other code, some in subfolders)
progTwo\main.go (and other code, some in subfolders)
progThree\main.go (and other code, some in subfolders)
common\net\ (go files, but no main)
common\colors\ (go files, but no main)
common\resources\ (go files, but no main)
在将其转换为 go 模块时,我可以将所有这些留在一个用于生成多个可执行文件的 git 存储库中吗?如果是,哪个子文件夹需要包含 go.mod 文件?
编辑:感谢@colm.anseo 的全面回复。这可能是一个单独的问题,但由于它密切相关,所以我会在这里问。
一旦我按照建议在 repo 的根目录中创建了一个 go.mod 文件,我就在 VSCode 中打开了根文件夹。我想调试“ProgOne”,所以我设置了这样的启动配置:
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "${workspaceFolder}/progOne/main.go",
"buildFlags": ""
}
但是当我尝试启动调试器时,构建失败:
Starting: /Users/me/dev/go/bin/dlv dap --check-go-version=false --listen=127.0.0.1:58867 --log-dest=3 from /Users/me/dev/convoy/myRepo/progOne
DAP server listening at: 127.0.0.1:58867
Build Error: go build -o /Users/me/dev/convoy/myRepo/progOne/__debug_bin -gcflags all=-N -l ./main.go
main.go:20:2: no required module provides package git.acme.com/myRepo/common/colors; to add it:
go get git.acme.com/myRepo/common/colors
(exit status 1)
我同时运行了“go mod tidy”和“go get git.acme.com/myRepo/common/colors”,但这并没有解决问题。我不希望其中任何一个是必要的,因为有问题的模块是这个存储库的一部分。
我需要做什么才能使该导入工作?
噜噜哒
相关分类