我有一个具有多种主要方法的项目。当运行go build program1/main1.go具有与 不同的依赖项集时program2/main2.go,我的第一个go build似乎更改了我的go.mod文件并删除了它认为不需要的依赖项。然而main2会需要这些依赖。
我试过使用,go build ...但这也创建了一组不同的依赖项。具体来说,似乎所有//indirect依赖项都被删除并导致 program2 失败。
有没有办法运行go build或go run不更新go.mod文件?使用go build -mod=readonly program1/main1.go它告诉我它失败了,因为需要更新依赖项..
我相信您正在寻找submodules。请参阅此演练。
TLDR:您需要go.mod在您的每个工具的cmd目录中使用一个单独的目录,并且您可以使用该replace指令将这些工具的依赖项指向您的本地模块。
这个 Go Issue和其他与它相关联的问题表明,找出“一种正确的方法”来做到这一点仍然是 WIP,尽管我认为你的用例很简单。