Сборка / запуск исполняемого файла вне GOPATH в Go> = 1.12 - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь посвятить время и узнать больше о 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, но она не соответствует форме того, что я читаю.

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