Запутался, как на практике работает репозиторий проектов Голанга - PullRequest
0 голосов
/ 15 декабря 2018

Этот вопрос относится к популярному project-layout .Это просто способ выложить код, но фактическая компиляция двоичного файла будет в

/cmd/app1/
/cmd/app2/

Так что, если у меня есть веб-сайт, он все равно будет считаться приложением cmd, которое просто запуститсяпрослушиватель http и т. д.

Или есть несколько «точек входа» по всему макету, а не только в папках cmd?

Как именно вы собираете и запускаете свое приложение, используя этот макет?(или один из них, поскольку, насколько я понимаю, он поддерживает множественное число)

это как:

go build cmd/app1/*.go?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Вы можете просто

go build ./cmd/app/

Например, у меня есть этот модуль

├── cmd
│   ├── cli
│   │   └── main.go
│   └── web
│       └── main.go
├── go.mod
└── service
    └── service.go

go.mod просто

module example

service.go:

package service

import "fmt"

func DoSomething() {
    fmt.Println("service processing")
}

cmd / web / 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()
}

Сборка (из корня)

Build web:

go build ./cmd/web/

Это создаст двоичный файл web

run web

./web
// output:
// starting web program
// service processing

Build cli:

go build ./cmd/cli/

запустить веб

./web
// output:
// starting cli program
// service processing
0 голосов
/ 15 декабря 2018

Если вы хотите собрать все свои приложения в папке, вы можете сделать это следующим образом:

go install ./...

это создаст все ваши приложения в папке bin внутри GOPATH, тогда вы можете запустить любое приложение, которое вам нравится.
Но если вы хотите создать и запустить определенное приложение, вы можете перейти в эту папку и просто запустить.

go build 

Пока в этой папке есть основной пакет, вы можете создать свою программу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...