为了账号安全,请及时绑定邮箱和手机立即绑定

从 go 中的同一项目导入包

从 go 中的同一项目导入包

Go
拉风的咖菲猫 2023-08-07 11:09:28
我有一个关于 Go 中的包结构的问题。我的 src 目录中有一个结构如下的项目:- project    - proto_messages    - client        - clientcode.go    - server        - servercode.go在我的客户端和服务器代码中,我使用这样的导入:“../proto_messages”,它构建在我的詹金斯上,没有任何问题。问题是,我无法像这样开发 - 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: \当我将 import 语句更改为“prj_temp/proto_messages”时,它可以在本地运行,但是 jenkins 构建失败,因为它找不到 proto_messages 包。有任何想法吗?
查看完整描述

1 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

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. 我认为当您开始获取第三方项目时,事情会变得更容易。

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


查看完整回答
反对 回复 2023-08-07
  • 1 回答
  • 0 关注
  • 118 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信