Golang "Go Get" потянув много зависимостей. Даже попытка go get -d. / ... дает сбой и говорит, что ей нужно больше зависимостей - PullRequest
0 голосов
/ 03 октября 2019

Я пытаюсь написать облачный API для Google Cloud и только что импортировал 2 пакета "golang.org/x/net/context" "golang.org/x/oauth2/google"

Когда я пытался простоделать иди получить не может, говоря, пропавших пакетов. Поэтому я попытался сделать "иди -f. / ...". Я также попытался получить все, что ему нужно, но зависимости никогда не заканчиваются, и моя папка src загружается множеством пакетов. Не уверен, почему это так тянет. Пожалуйста, помогите.

Что-то изменилось в Go 1.12. Я использовал старые версии Golang до этого. Спасибо

иди и получай golang.org/x / ... иди -d ./...

import (
  "fmt"
  "golang.org/x/net/context"
  "golang.org/x/oauth2/google"
  "google.golang.org/api/compute/v1"
)
func Test() bool{
    projects := [...]string{
       "xxxx",
    }

    ctx := context.Background()
    client, err := google.DefaultClient(ctx,compute.ComputeScope)
    if err != nil {
        fmt.Println(err)
    }
    return true
}

Код должен скомпилироваться.

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

У меня есть структура моего проекта, как показано ниже -

/ User / xxxx / projects / projectname, где находится весь проект. GOPATH установлен в / User / xxxx / projects / projectname. Makefile находится здесь. Тогда у меня есть один каталог "src" и под ним есть каталог "сервер". В каталоге «server» есть Server.go, в котором есть «main». Под каталогом сервера находятся другие пакеты. Одним из них является «облако», в котором есть файл go, который импортирует
«golang.org/x/net/context» «golang.org/x/oauth2/google»

Теперь моя путаница, где должен быть этот go.mod и откуда мне запускать go mod? Даже после установки GO111MODULE = on я получаю ошибку
go: невозможно определить путь к модулю для исходного каталога / Users / xxx (за пределами GOPATH, без комментариев импорта)

Я не смог найти нужную документацию в Интернете. Все они говорят о создании каталога и добавлении main.go. Импортируйте несколько сторонних и просто постройте. Это не помогает.

0 голосов
/ 03 октября 2019

Поскольку мы говорим о Go 1.12, вы, вероятно, работаете с mod, в противном случае самое время перейти к нему.

Итак, используя мод, вам нужно сделать следующее: Установить GO111MODULE средупеременная "on".

export GO111MODULE=on

Затем вам нужно запустить модуль

go mod init <module_name>

Имя может включать путь к GitHub или быть просто именем, подобным go-superlib и т. д. .

Затем mod проверит все ваши файлы .go модуля и создаст список зависимостей. Вам нужно только сделать

go get

тогда и go mod сделает все за вас.

PS: не пытайтесь установить golang.org/x/... - это действительно огромно.

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