gpt4 book ai didi

go - 从同一个项目中导入包

转载 作者:行者123 更新时间:2023-12-01 22:27:43 29 4
gpt4 key购买 nike

我对 Go 中的包结构有疑问。我的 src 目录中有一个结构如下的项目:

- project
- proto_messages
- client
- clientcode.go
- server
- servercode.go

在我的客户端和服务器代码中,我使用这样的导入:“../proto_messages”,它建立在我的 jenkins 上,没有任何问题。问题是,我不能这样开发 - VS Code/Go 提供以下错误:
unexpected directory layout:
import path: _/C_/Users/bob/Documents/go/src/prj_temp/proto_messages
root: C:\Users\bob\Documents\go\src
dir: C:\Users\bob\Documents\go\src\prj_temp\proto_messages
expand root: C:\Users\bob\Documents\go
expand dir: C:\Users\bob\Documents\go\src\prj_temp\proto_messages
separator: \


当我将导入语句更改为“prj_temp/proto_messages”时,它在本地工作,但 jenkins 构建失败,因为它找不到 proto_messages 包。有任何想法吗?

问候
鲍勃

最佳答案

import 语句应该是 src 之后的路径,所以在这种情况下是 prj_temp/proto_messages是正确的。

在 jenkins 上,确保将代码复制到正确的文件夹中:$GOPATH/src/prj_temp (无论 jenkins 上的 gopath 是什么)

此外,我建议将您的项目嵌套到组织级别的目录中,以遵循约定。即使您没有计划将其推送到 github 存储库,我建议您将项目保存在本地 C:\Users\bob\Documents\go\src\github.com\bob\someproject并将所有导入更改为 github.com/bob/someproject/proto_messages .我认为当您开始获取 3rd 方项目时,这会让事情变得更容易。

免责声明:答案基于我在发布 go 模块之前获得的知识。当充分利用 go 模块时,可能不再需要或推荐上述某些内容。

关于go - 从同一个项目中导入包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58924842/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com