Как получить все файлы зависимостей для программы с помощью Golang

91

Я делаю программу на golang, и после завершения кода, если я хочу запустить этот код на другом компьютере или виртуальной машине, тогда он не получает все файлы пакетов зависимостей. как я могу получить все файлы зависимостей?


источник

Ответы:

9

Вы можете использовать godep saveна своем локальном компьютере, где вы завершаете свою программу. godep save соберет для вас все файлы зависимостей. Когда вы переходите на другой компьютер, просто скопируйте папку Godep с вашим кодом, и это решит ваши проблемы.

Анимеш Кумар Пол
источник
7
Может быть, для кого-то это очевидно, но мне пришлось это раскопать. Оказывается, вам нужно установить пакет godep или dep для Go. Стиль Github для этого находится здесь: github.com/tools/godep
Patratacus
218

Вы можете запустить go get -d ./...из каталога своего проекта, чтобы загрузить все готовые зависимости.
Или скопируйте все srcподкаталоги с GOPATH на конечный компьютер.
...это специальный шаблон, который говорит, что нужно рекурсивно идти вниз.

RoninDev
источник
1
Если мне нужно запустить / изменить код, он не найдет пакетов.
1
Я знаю, что могу получить пакеты с помощью go get <package>, но это отнимает много времени и сложно, когда программа использует много пакетов.
4
-t установит также тестовые зависимости
honzajde
3
@AlbertoSchiabel ...- это особый шаблон. Он говорит идти вниз рекурсивно. Я обновил ответ
RoninDev
Спасибо @RoninDev! Сначала я собирался отредактировать ваш ответ на ./., потому что после того, как я попробовал команду you на моем компьютере, он застрял (и теперь я знаю, почему, поскольку рекурсивный поиск файлов go может быть довольно дорогим), но потом я понял, что это лучше спросить сначала. Благодаря!
Альберто Скиабель
52

Пытаться

go list -f '{{ join .Imports "\n" }}'

или же

go list -f '{{ join .Deps "\n" }}'

Во втором будут перечислены все подзависимости, в первом - только напрямую импортированные пакеты.

фиатжаф
источник
24

Команда ниже работает для меня, она загружает все зависимости.

go get -u -v -f all
бесконечный
источник
Это займет много времени !!! он загружает пакеты, которые я никогда не использовал в проекте!
Юсефери