登录
首页 >  Golang >  Go问答

使用具有典型目录结构的 go 模块,似乎无法使其工作

来源:stackoverflow

时间:2024-04-19 20:57:33 313浏览 收藏

小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《使用具有典型目录结构的 go 模块,似乎无法使其工作》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

问题内容

因此,我创建了一个简单的测试项目来演示我在更大的代码库中遇到的问题 https://github.com/cleblanc189/test.go

.
├── go.mod
├── main.exe
├── main.go
├── server
│   ├── v1beta1
│   │   ├── foo.go
│   │   └── go.mod
│   └── v1ga
│       ├── foo.go
│       └── go.mod
└── service
    ├── v1beta1
    │   ├── foo.go
    │   └── go.mod
    └── v1ga
        ├── foo.go
        └── go.mod

我希望能够从 server/v1beta1 引用 service/v1beta1,但我收到此错误

go: test.go/src/server/[email protected] requires
        test.go/src/service/[email protected]: unrecognized import path "test.go/src/service/v1beta1" (https fetch: get https://test.go/src/ser
vice/v1beta1?go-get=1: dial tcp: lookup test.go: no such host)

在来自 server/v1beta1 的 foo.go 中,我像这样导入 svc“test.go/src/service/v1beta1” </p> <p>并有一个如下所示的 go.mod 文件;</p>

require test.go/src/service/v1beta1 v0.0.0

replace test.go/src/service/v1beta1 => ../../service/v1beta1
<p>当我尝试 cd src && go mod tidy 时,我收到上面的错误。另外,如果有人知道我是否应该在 src 目录上方有一个 go.mod ?

感谢任何人可以提供的任何帮助。这太令人抓狂了。


解决方案


您的 go.mod 必须声明模块路径/名称,通常如下所示:

module test.go

然后代码中的所有 import 都将相对于此。当您导入与声明的模块名称相关的内容时,go 工具将自动从本地正确的位置获取代码。

不确定您的 src 在哪里发挥作用...文件夹 src 中的所有内容都在吗?请参阅 this post and accompanying code 了解您可以开始的完整示例。

今天关于《使用具有典型目录结构的 go 模块,似乎无法使其工作》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

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