Можно ли установить ограничения версии для пакетов git во флаттере?

Структура нашего проекта выглядит так:

(b5df1cc)
common    -> package1 \
                       \
(56e0bc0)               \
common    -> package2 -----> myApp
                        /
(101aa16)              /
common    -> package3 /

myApp зависит от package1, pacakge2, package3, а также package1, pacakge2, pacakge3 зависит от commonпакет (пакеты git), ноcommonпакет (пакеты git) может иметь другой хеш фиксации. После запускаflutter packages get, он покажет ошибку, например:

Because every version of package1 from git depends on common from git {url: git@bitbucket.org:common.git, ref: b5df1cc, path: common} and every version of package2 from git depends on common from git {url: git@bitbucket.org:common.git, ref: 56e0bc0, path: common}, package1 from git is incompatible with package2 from git.
So, because myApp depends on both package2 from git and package1 from git, version solving failed.
Running "flutter pub get" in myApp...
pub get failed (1; So, because myApp depends on both package2 from git and package1 from git, version solving failed.)

Можно ли установить ограничения версии или другой способ игнорировать ошибку "ошибка решения версии" для пакетов git? Потому что мы можем гарантировать, что весь код изcommon пакет (пакет git) совместим с pacakge1, package2, package3, если он может установить ограничения версии, например >=2.0.0 <3.0.0, мы можем позволить версии никогда не достичь 3.0.0, так myApp может быть совместим с package1, pacakge2, package3, так далее.

Обновлено:

Использование dependency_override может решить эту проблему, ноdependency_override необходимо установить в myApp, когда общий пакет обновляется, нам нужно обновить общий пакет в myApp в то же время, скажем, если я обновлю общий пакет в package1, Мне нужно обновить общий пакет в myApp тоже, чего я не ожидал.

1 ответ

Возможный обходной путь - использование dependency_overrides

Примечание: это может сломать package1/2/3, так как он заставляет их использовать какую-то версию общего пакета, игнорируя их ограничения

Другие вопросы по тегам