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