亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 /cmd 結構構建 Go 模塊時出錯

使用 /cmd 結構構建 Go 模塊時出錯

Go
PIPIONE 2023-05-04 17:41:30
我是新來的模塊,我正在嘗試按照此處描述的結構建模的新項目中使用它們這是我的目錄結構的示例:.├── cmd│   └── app_name│       └── main.go├── go.mod├── go.sum├── internal│   └── bot│       └── bot.go└── pkg    ├── website_name    │   ├── client.go    │   ├── client.options.go    │   ├── server.go    │   └── server.options.go    └── lib        └── lib.go這在慣用語上是正確的嗎?我知道那里沒有太多共識,但我想遵循最佳實踐。當我運行時,go build我得到“意外的模塊路徑“github.com/ragurney/app_name/cmd/app_name””,但是當我運行時go build ./...它有效。為什么?當我移動main.go到頂層時,一切都按預期工作。我不應該將/cmd模式與模塊一起使用嗎?
查看完整描述

3 回答

?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

要回答您的第一個問題,它完全是自以為是,無論您最喜歡什么,對于您應該接受的其他人來說也很容易理解(我認為這很好)。

go build ./...要回答你的第二個問題,而不是go build從根目錄開始工作的原因是因為./...從當前目錄(根目錄)開始并搜索所有程序入口點并構建它們。當您移動main.go到根目錄時,有了這些新信息,go build工作就有意義了,因為它只在當前目錄中查找。

您可以明確說明go build ./cmd/app_name哪個也有效。

您的應用程序結構與模塊完美配合,因為我使用的是與它非常相似的東西 。


查看完整回答
反對 回復 2023-05-04
?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

據我所知,您的項目結構沒有任何問題。對我有用的是從項目根目錄運行 go build/run 命令

例如。 go run github.com/username/project/cmd/somecommand

go build -o somebinary github.com/username/project/cmd/somecommand


查看完整回答
反對 回復 2023-05-04
?
九州編程

TA貢獻1785條經驗 獲得超4個贊

我更喜歡添加特定的文件來構建,有些項目有多個可執行文件

go build -o app ./cmd/server/main.go


查看完整回答
反對 回復 2023-05-04
  • 3 回答
  • 0 關注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號