如何解决模块名称工作不正常
有一个私有的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 gitlab.myownsite.com/common/libs/lib_a
然而,这个命名违反了github.com/username/reponame
的命名规则,导致另一个项目使用我的lib_a:
import "gitlab.myownsite.com/common/libs/lib_a"
错误解析导入gitlab.myownsite.com/common/libs.git的子包lib_a,common
被识别为username
,libs为reponame
,lib_a为包名。 go mod 报错:
repository 'https://gitlab.myownsite.com/common/libs.git/' not found
我无法更改此私有 gitlab 站点的文件夹结构,如何解决此问题?
我的 go 模块环境有:GOPRIVATE=gitlab.myownsite.com
解决方法
感谢@Volker 指出,当 go get execute 时响应了一个元信息,它描述了路径的哪一部分是 repo(.git
)。不幸的是,gitlab 有 a bug on it。我正在搜索 replace trick 可以避免这个问题。或者,不得已,重新构建 gitlab 路径
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。