正如其他人所说,将所有内容放在一个未发布的模块中比将内容分解为多个模块要容易得多。这使得保持“幸福之路”变得更加容易,并且对于您的情况来说,这听起来像是可行的。
也就是说,如果您升级到 Go 1.18,新的工作区该功能使得同时编辑多个本地模块变得更加容易:
通过多模块工作区,您可以告诉 Go 命令您同时在多个模块中编写代码,并轻松在这些模块中构建和运行代码。
例如,从包含多个模块目录(每个都有自己的 go.mod 文件)的父目录中,您可以创建一个go.work
文件并通过执行以下操作递归添加下面的模块:
$ go work init
$ go work use -r .
例如,如果您有两个模块,假设模块foo
导入模块bar
,生成的 go.work 文件可能如下所示:
$ cat go.work
go 1.18
use (
./foo
./bar
)
如果您然后 cd 到foo
目录,命令如go build
将使用两者的本地副本foo
and bar
.
其机制是go
命令检查它是否位于带有go.work
文件,默认情况下它会查阅任何go.work
找到有助于解决依赖项所在位置的文件。
有关工作区的更多信息,这里有一个很好的教程:https://go.dev/doc/tutorial/workspaces
或者,您可以使用旧的技术添加replace指令到您个人的 go.mod 文件,但这并不像新的那么好go.work
特征。
最后,即使考虑到新的go.work
功能,值得重申的是,如果您一次只使用一个模块,您的生活会更简单,因此不要不必要地分割可能是单个模块的内容。