我在私有 GitLab 上的多个子目录下创建了包含 Go 语言包的存储库。
存储库的层次结构如下。
https://mygitlab.example.com/grand-parent-org/parent-org/child-org/myrepository.git
此外,库的层次结构如下。
https://mygitlab.example.com/grand-parent-org/parent-org/child-org/myrepository/golib/go.mod
在这种情况下,我最初假设库中的 go.mod 上的包名称为
mygitlab.example.com/grand-parent-org/parent-org/child-org/myrepository/golib
,但无法成功 go get。
我尝试了该命令。
go get mygitlab.example.com/grand-parent-org/parent-org/child-org/myrepository/golib
执行时,它将搜索
mygitlab.example.com/grand-parent-org.git
和 mygitlab.example.com/grand-parent-org/parent-org.git
作为存储库,但不会通过 go get 搜索更深层次的存储库。
经过多方研究,发现库端go.mod等设置为即可稳定使用
mygitlab.example.com/grand-parent-org/parent-org/child-org/myrepository.git/golib
当go get完成或者导入源代码来使用该库时,它的写法如下。
import "mygitlab.example.com/grand-parent-org/parent-org/child-org/myrepository.git/golib"