猿问

对 golang 项目布局回购在实践中的工作方式感到困惑

这个问题参考了流行的project-layout。这只是一种布局代码的方法吗,但二进制文件的实际编译将在

/cmd/app1/
/cmd/app2/

所以如果我有一个网站,它仍然会被认为是一个 cmd 应用程序,它只会启动 http 侦听器等。

或者整个布局中是否有多个“入口”点,而不仅仅是在 cmd 文件夹中?

您将如何使用此布局实际构建和运行您的应用程序?(或者其中之一,因为据我所知它支持多个)

是不是像:

go build cmd/app1/*.go ?


素胚勾勒不出你
浏览 133回答 2
2回答

人到中年有点甜

你可以go build ./cmd/app/例如我有这个模块├── cmd│   ├── cli│   │   └── main.go│   └── web│       └── main.go├── go.mod└── service    └── service.gogo.mod 只是module example服务.去:package serviceimport "fmt"func DoSomething() {    fmt.Println("service processing")}命令/网络/main.go:package mainimport (    "example/service"    "fmt")func main() {    fmt.Println("starting web program")    service.DoSomething()}cmd/cli/main.go:package mainimport (    "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

守着星空守着你

如果你想在一个文件夹中构建你所有的应用程序,你可以这样做:go install ./...这将在 GOPATH 中的 bin 文件夹中构建你所有的应用程序,然后你可以运行你喜欢的任何应用程序。但是如果你想构建和运行一个特定的应用程序,你可以转到该文件夹并运行。go build只要该文件夹中有一个主包,您就可以构建您的程序。
随时随地看视频慕课网APP

相关分类

Go
我要回答