Мой проект го состоит из множества компонентов. У каждого компонента есть собственный каталог поставщиков, который заполняется файлом dep
. Поскольку компоненты имеют похожие зависимости, существует огромное дублирование в каталогах поставщиков. Вдобавок поставщики довольно большие: ~ 20 МБ.
Моя идея состоит в том, чтобы уменьшить размер репозитория, указав общего поставщика в верхней части проекта.
project
vendor
|--component1
|----main.go
|----vendor
|--component2
|----main.go
|----vendor
Каждый компонент должен определять только специфические для него зависимости. Чтобы не предоставлять общие зависимости для каждого dep ensure
, выполняемого на уровне компонента, мы можем указать, какие пакеты следует игнорировать в файле Gopkg.toml:
ignored = ["github.com/aszecowka/calc"]
Вопрос: кто-нибудь использует такой подход? Есть альтернативы?
Обновление. Контекст: в моей компании мы изучаем подход монорепозитория, мы пытаемся объединить разные проекты go, но в итоге получаем действительно огромный репозиторий - в основном из-за каталогов многих поставщиков.
vendor
верхнего уровня и все зависимости, включая переходные, там. См. это. - person kostix   schedule 29.06.2018main.go
файл (я обновил описание моей проблемы) и собственные поставщики. Мой вопрос: если оба компонента используют некоторые общие библиотеки, можем ли мы извлечь эти перекрывающиеся зависимости и поместить их в каталог поставщика на уровне выше? В моей компании мы изучаем подход монорепозитория, мы пытаемся объединить различные проекты go, но в итоге получаем действительно огромный репозиторий - в основном из-за множества каталогов поставщиков. - person Adam Szecowka   schedule 29.06.2018