Хорошо, поэтому GoDeps может быть стандартным способом сделать это, но я обычно нашел это немного сложным. На мой взгляд, используйте Makefile, который устанавливает пользовательский GoPath и просто включает зависимости с вашим кодом (удалите их .git-папку). Таким образом, версия зависает, и никто не должен делать godep restore
или что-то подобное.
Вы можете делать рецепты, такие как make deploy
, который строит ваш код, запускает GoFmt, очищает файлы pkg, устанавливает его на ваш пользовательский GoPath bin/
, а затем вы просто запускаете двоичный файл.
У вас может быть другой, такой как make install
, который установит любые отсутствующие зависимости.
Мне удалось создать часы, используя это в моем файле Makefile, чтобы продолжать поиск изменений в системе на основе Linux с помощью inotify-tools
и вызвать перестройку.
Внутренне все команды будут использовать стандартные команды go
, но вы избавитесь от GoDeps и поддерживаете JSON. Чтобы обновить зависимость, это может быть проблемой, так как вам придется вручную скопировать весь каталог в свой собственный путь и удалить папку .git /.
Наша компания использует этот метод и, похоже, работает с нами очень хорошо.
Плюс этот метод в основном уводит вас от пути $GOPATH/src/github.com/repoName/
.
Если мне кажется неясным, дайте мне знать, я добавлю суть в github.
В качестве альтернативы, просто используйте govendor (https://github.com/kardianos/govendor), который делает все это для вас, без необходимости устанавливать пользовательский '$ GOPATH' в вашем make-файле (который нарушает случайные использования' go build 'и подобные, и, откровенно говоря,' make' медленно, как черт для таких вещей). Govendor будет хранить ваши отпечатки в '/vendor', который проверяет их с помощью вашего кода, позволяя надежные сборки. До тех пор, пока вы используете Go 1.6 (или 1.5 и устанавливаете envvar), вам не нужен пользовательский '$ GOPATH' вообще, так как инструмент' go' автоматически 'предпочитает' папку '/ vendor'. –
Kaedys
Ahh stackoverflow .. Ты научишь меня чему-то новому каждый день! Спасибо, я посмотрю. – ishaan
Не проверяйте двоичные файлы с исходным кодом на ваш ** источник **. Не. – JBaruch