如何解决可以在flutter中为git软件包设置版本限制吗?
我们的项目结构如下:
(b5df1cc)
common -> package1 \
\
(56e0bc0) \
common -> package2 -----> myApp
/
(101aa16) /
common -> package3 /
myApp
取决于package1
,pacakge2
,package3
和package1
,pacakge2
,pacakge3
,取决于{{ 1}}软件包(git packages),但是common
软件包(git软件包)可能具有不同的提交哈希。运行common
后,它将显示如下错误:
flutter packages get
是否可以设置版本约束或其他方式来忽略git软件包的“版本解决失败”错误?因为我们可以确保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,version solving failed.)
包(git包)中的所有代码都可以与common
,pacakge1
,package2
兼容,前提是它可以设置版本约束,例如{ {1}},我们可以让版本永远不会达到package3
,因此>=2.0.0 <3.0.0
可以与3.0.0
,myApp
,package1
等兼容。
已更新:
使用dependency_override可以解决此问题,但是需要在pacakge2
中设置package3
,当更新公共包时,我们需要更新{{ 1}}同时说,如果我更新dependency_override
中的通用软件包,我也需要更新myApp
中的通用软件包,这不是我期望的。
解决方法
可能的解决方法是使用dependency_overrides
注意:它可能会破坏package1 / 2/3,因为它会强制使用某些版本的通用软件包,而忽略了它们的约束
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。