登录
首页 >  Golang >  Go问答

模块名称工作不正确

来源:stackoverflow

时间:2024-04-05 20:24:36 310浏览 收藏

珍惜时间,勤奋学习!今天给大家带来《模块名称工作不正确》,正文内容主要涉及到等等,如果你正在学习Golang,或者是对Golang有疑问,欢迎大家关注我!后面我会持续更新相关内容的,希望都能帮到正在学习的大家!

问题内容

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

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

请注意,这不是单个项目的文件夹结构,而是 gitlab.myownsite.com 的结构,其中包含许多存储库。例如,我用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执行时会响应一个元信息,它描述了路径的哪一部分是repo(.git)。不幸的是,gitlab有a bug on it。我搜索replace trick可以避免这个问题。或者,最后的手段,重新构造gitlab路径

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>