我一直在使用Go模块,但我想知道以下目录结构的最佳实践是什么:
project
??? go.mod
??? main.go
??? players
??? go.mod
??? players.go
??? players_test.go
Run Code Online (Sandbox Code Playgroud)
起初我在将players软件包导入到根项目时遇到问题,但是我注意到我可以在根go.mod文件中执行此操作
module github.com/<name>/<project>
require (
github.com/<name>/players v0.0.0
)
replace github.com/<name>/players => ./players
Run Code Online (Sandbox Code Playgroud)
然后,这允许我import "github.com/<name>/players"在main.go文件中执行操作。
现在,此方法可行并从此处采用,但是我不确定这是否是正确的方法,或者该方法是否仅用于在版本控制之外临时更新本地包。
另一个选择,似乎有点过大,是使每个模块都有自己的存储库?
TL; DR; -在同一存储库中包含多个模块并将其导入其他模块/根main.go文件中的最佳实践方法是什么?