Как использовать локальный модуль Go внутри проекта Go - PullRequest
1 голос
/ 30 апреля 2019

В нашей локальной сети у нас работает GitLab. IP привязан к gitlab.local. У меня есть пакет go http://gitlab.local/projectsmall/core, и он используется другим проектом Go. Внутри этого проекта, когда я пытаюсь запустить go mod tidy, я получаю эту ошибку:

go get gitlab.local/projectsmall/core: 
unrecognized import path "gitlab.local/projectsmall/core" 
(https fetch: 
  Get https://gitlab.local/projectsmall/core?go-get=1: 
  dial tcp 192.168.28.9:443: 
  connect: connection refused
)

Я добавил содержимое id_rsa.pub в SSH Kyes. Я пытался добавить этот core проект, чтобы перейти к пути мода, как это: /Users/UserA/go/pkg/mod/gitlab.local/guxin/core. import "gitlab.local/guxin/core" по-прежнему красный, используя GoLand IDE. Кажется, проект go mod не может найти этот пакет gitlab.local/guxin/core. В файле go.mod, внутри блока require, при добавлении этого gitlab.local/guxin/core предупреждение IDE: usage: require module/path.

Ответы [ 2 ]

1 голос
/ 05 мая 2019

Я узнал, что он использует https, но локальный gitlab не использует SSL.Я попробовал go get -v -insecure, и теперь оно работает.

0 голосов
/ 30 апреля 2019

Я не уверен, но мне кажется, что проблема может быть в том, что вы используете ключи ssh и вы подключаетесь через протокол HTTP, как вы можете видеть из текста ошибки.

Попробуйте: https://gist.github.com/dmitshur/6927554

$ ssh -A vm
$ git config --global url."git@gitlab.local:".insteadOf "https://gitlab.local/"
$ cat ~/.gitconfig
[url "git@gitlab.local:"]
    insteadOf = https://gitlab.local/
$ go get gitlab.local/private/repo && echo Success!
Success!

А также: Как правильно "пойти и получить" закрытый репозиторий?

В GitLab, поскольку хранилища всегда заканчиваются на .git, я должен указать .git в конце имени хранилища, чтобы оно работало, например:

import "example.org/myuser/mygorepo.git"

И:

$ go get example.org/myuser/mygorepo.git

Похоже, GitHub решает эту проблему, добавляя ".git".

...