[英]Should subpackages have their own go.mod file?
我有一个类似于这tree
的项目:
. proj
├── README.md
├── go.mod
├── go.sum
├── subpackage
│ ├── one.go
│ ├── two.go
│ ├── three.go
│ └── four.go
├── main.go
在main.go
我通过github.com/username/proj/subpackage
导入一个结构和一些方法。
我没有在任何其他项目中使用子包(只有这个项目)。
除了项目根目录中的go.mod
文件之外,我还应该在subpackage/
中有一个单独的go.mod
文件吗? 因此子包是否应该列在项目根目录的go.sum
文件中?
如果没有,在完全独立的项目中使用子包目录/包的情况下是否需要它?
不需要单独的子包go.mod
。 使用这样的 go.mod 文件,可以使用与根 package 不同的版本单独标记子包。 仅在非常特殊的情况下才需要此用例,在这些情况下,您希望同一存储库中的软件包具有不同的版本,因此不要这样做。
您根本不必手动修改 go.sum。 它只能由 go-tooling (go get, go build) 自动修改。
即使通过导入子包在另一个项目中使用它,您也不必为子包提供不同的版本。 导入此子包时,go-tool 将搜索 git 存储库的根目录,使用go get
自动下载存储库并使其可用于导入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.