@stripwire

Как импортировать внутренние зависимости в golang?

Допустим, мой проект находится в ~/project/ .
Я хочу подключить ~/project/pkg/foo к ~/project/main/main.go.

Могу ли я это сделать соблюдая слудеющие условия?
- не переносить проект в $GOPATH/src
- не используя import "github.com/user/project/..."
- без import "../pkg/foo" (вроде может вызывать ошибки)

В первую очередь это нужно, чтобы в будущем не происходил такой сценарий:
- $ git clone project
- $ go build ...
- Go начинает выкачивать ту же репу в $GOPATH/src/github.com

(В go новичок, да и про go modules узнал только что. Поэтому примеры скорее всего кривые)
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
GRbit
@GRbit
Linux, гитара, паяльник
Ортодоксально верный способ указать зависимость через "github.com/user/project/..."

Можете просто сходить посмотреть код больших проектов, например

https://github.com/hashicorp/consul/blob/master/main.go
https://github.com/docker/engine/blob/master/cmd/d...

Если есть острая необходимость прямо у себя всё это делать и никогда никуда не заливать, можно так:
go mod init localpack
yellow.go:
package localpack

func Hi(s string) string {
   return "Hi " +s + ". I'm local package."
}

orange/orange.go:
package main
import "localpack"

func main() {
   s := localpack.Hi("Red")
   println(s)
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Lanck Telecom Санкт-Петербург
от 180 000 до 250 000 ₽
Leningrad Media Санкт-Петербург
До 200 000 ₽
Sports.ru Москва
До 250 000 ₽