У меня такая проблема:
- Модуль A импортирует модуль X v0.1.0
- Модуль B импортирует модуль X v0.2.0
- Я импортирую как A, так и B в моем проекте.
Golang выбирает X v0.2.0 и называет это хорошим. Но это нехорошо. v0.1 и v0.2 достаточно различаются, поэтому A ломается, и мой проект не компилируется.
Какие варианты у меня есть, чтобы это исправить?
Официальный Позиция go выглядит так: «разработчики X сделали это неправильно и должны были выпустить основную версию после критических изменений». Но в текущей ситуации это не помогает.
Я не могу найти обсуждения практических решений.
Дополнительная информация
- Вышеупомянутое упрощение, A и B имеют еще пару зависимостей, которые также зависят от X.
- Этот проект должен быть обслуживаемым группой людей. Таким образом, обновление A и B до новых версий в идеале не вызывает затруднений. 1033 *
- Разветвление A и X, изменение всех путей импорта и обновление
go.mod
A. Это работает, но делает обновления этих модулей медленными и подверженными ошибкам. - Скопируйте и вставьте требуемый код из A и X, чтобы избежать его импорта. Также медленно и подвержен ошибкам.
- Глубоко погрузился в творческие приложения
go mod vendor
, но не смог найти решения.