模块名称工作不正常

Module name works improperly

有一个私有 git 站点,地址为 gitlab.myownsite.com,文件夹结构为:

/common
    |___ /libs
           |___ /lib_a
                  |__ lib_a.mod
/somethingelse

请注意,这不是单个项目的文件夹结构,它是 gitlab.myownsite.com 的结构,其中包含许多 repo。例如,我用 Go 写了一个库 lib_a,然后在路径 gitlab.myownsite.com/common/libs/lib_a 上创建了一个 repo,它的 module name 是:

module gitlab.myownsite.com/common/libs/lib_a

然而,这个命名违反了github.com/username/reponame的命名规则,导致另一个项目使用了我的lib_a by:

import "gitlab.myownsite.com/common/libs/lib_a"

错误解析导入子包lib_a of gitlab.myownsite.com/common/libs.git, common 被识别为 username, libs作为 reponame、lib_a 作为包名。 go mod 报告错误:

repository 'https://gitlab.myownsite.com/common/libs.git/' not found

我无法更改此私有 git 实验室站点的文件夹结构,如何解决这个问题?

我的 module env 有:GOPRIVATE=gitlab.myownsite.com

感谢@Volker to point out, there is a meta info responsed when go get execute which describe which part of path is repo (the .git). Unfortunately, gitlab has a bug on it. I'm search a replace trick 可以避免这个问题。或者,不得已,重新构建gitlab路径