go module 如何只下载存储库子目录中的包?

How can go module only download package in a subdirectory of a repository?

我创建了一个名为 A 的模块并将其推送到我公司的私人仓库。

repo地址是xxx.com/inf/client.git,A module是子目录所以A module命名为xxx.com/inf/client.git/A

当我使用模块时,我将其导入到我的代码中

import (
    "xxx.com/inf/client.git/A"
)
func main() {
    A.XXX()
}

当我使用go build构建代码时,go module可以找到模块A并开始下载。但问题是与 A 同级别的子目录太多了,它们都会被下载,这是我没想到的。

有人可以帮忙吗?我只想下载 xxx.com/inf/client.git/A 而不下载 xxx.com/inf/client.git/B(C,D...) 因为它们根本没有被使用.

不,不支持。

如果出于某种原因您真的不想下载该模块中的其他代码,请在单独的存储库中创建一个单独的模块。

几乎没有任何理由为此创建一个单独的模块。它所做的只是节省几 kb 的磁盘 space,而且磁盘很便宜——通常比开发人员处理更多 repos/modules.

所花费的时间便宜得多