我有一個關于 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 關注
- 153 瀏覽
添加回答
舉報
0/150
提交
取消