我有一个关于 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 模块时,上述某些内容可能不再是必要或推荐的。
- 1 回答
- 0 关注
- 118 浏览
添加回答
举报
0/150
提交
取消