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

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

對 golang 項目布局回購在實踐中的工作方式感到困惑

對 golang 項目布局回購在實踐中的工作方式感到困惑

Go
素胚勾勒不出你 2023-05-15 15:39:53
這個問題參考了流行的project-layout。這只是一種布局代碼的方法嗎,但二進制文件的實際編譯將在/cmd/app1/ /cmd/app2/所以如果我有一個網站,它仍然會被認為是一個 cmd 應用程序,它只會啟動 http 偵聽器等?;蛘哒麄€布局中是否有多個“入口”點,而不僅僅是在 cmd 文件夾中?您將如何使用此布局實際構建和運行您的應用程序?(或者其中之一,因為據我所知它支持多個)是不是像:go build cmd/app1/*.go ?
查看完整描述

2 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

你可以


go build ./cmd/app/

例如我有這個模塊


├── cmd

│   ├── cli

│   │   └── main.go

│   └── web

│       └── main.go

├── go.mod

└── service

    └── service.go

go.mod 只是


module example

服務.去:


package service


import "fmt"


func DoSomething() {

    fmt.Println("service processing")

}

命令/網絡/main.go:


package main


import (

    "example/service"

    "fmt"

)


func main() {

    fmt.Println("starting web program")

    service.DoSomething()

}

cmd/cli/main.go:


package main


import (

    "example/service"

    "fmt"

)


func main() {

    fmt.Println("starting cli program")

    service.DoSomething()

}

構建(從根目錄)

建立網絡:


go build ./cmd/web/

這將創建二進制文件web


運行網絡


./web

// output:

// starting web program

// service processing

構建客戶端:


go build ./cmd/cli/

運行網絡


./web

// output:

// starting cli program

// service processing


查看完整回答
反對 回復 2023-05-15
?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

如果你想在一個文件夾中構建你所有的應用程序,你可以這樣做:

go install ./...

這將在 GOPATH 中的 bin 文件夾中構建你所有的應用程序,然后你可以運行你喜歡的任何應用程序。
但是如果你想構建和運行一個特定的應用程序,你可以轉到該文件夾并運行。

go build

只要該文件夾中有一個主包,您就可以構建您的程序。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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