Я пытаюсь посвятить время и узнать больше о Go. Моя самая большая проблема сейчас - это структурирование и построение проекта.
Я прочитал здесь , что вы можете настроить свой проект так, чтобы он находился за пределами GOPATH, и это здорово, потому что это соответствует тому, как я и компания, в которой я работаю, организовываем вещи локально.
Я настроил очень простую структуру проекта, которая находится в /src/go-learning
:
├── cmd
│ └── hello
│ └── main.go
├── Dockerfile
├── go.mod
└── README.md
Сам код Go очень прост, и я хотел добавить зависимости, чтобы получить лучшее представление о сборке:
package main
import (
log "github.com/sirupsen/logrus"
uuid "github.com/google/uuid"
)
func main() {
log.Info("Hello, World! Request: " + uuid.New().String())
}
Мой go.mod
файл выглядит так:
module cmd/hello
go 1.12
Когда я пытаюсь запустить go build , я получаю эту ошибку:
не может загрузить пакет: пакет cmd / hello: не удается найти пакет "." в:
/ USR / местные / перейти / SRC / ЦМД / привет
Я уверен, что это что-то глупое, но у меня есть следующие вопросы:
- Что мне нужно посмотреть, научиться исправлять мой файл go.mod, чтобы go build работало?
- Будет ли это достаточным, чтобы разрешить создание исполняемого файла, который я могу переместить куда-нибудь, например
/usr/local/bin
, только на моей локальной машине?
Быстрое обновление:
Команда, которая работает, это go build -o TEST cmd/hello/main.go
, но она не соответствует форме того, что я читаю.