模块名称工作不正常
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路径
有一个私有 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路径