问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Flutter开发--Pub包管理

发布网友 发布时间:2022-09-09 07:18

我来回答

1个回答

热心网友 时间:2024-12-14 23:24

在原生开发中, Android 使用 Gradle 来管理依赖, iOS 用 Cocoapods 来管理依赖,Node 中通过 npm来管理依赖。 Flutter 使用配置文件 pubspec.yaml (位于项目根目录)来管理第三方依赖包。

Pub 是Google官方的Dart Packages仓库,类似于node中的npm仓库,android中的jcenter,我们可以在上面查找我们需要的包和插件,也可以向pub发布我们的包和插件。

Pub工具包含管理Package、部署Package和部署命令行应用的命令。
如果使用的是Flutter SDK,不要直接使用pub命令。而是使用flutter pub命令,如下:

命令pub get/upgrade/outdated 属于管理Package的依赖关系

用于检索当前 Package 所依赖的其它 Package。如果 pubspec.lock 文件已经存在,则根据该文件中保存的依赖项版本获取对应的依赖项。如有必要,将会创建或更新该文件。

更新 package 依赖

当你添加一个 package 后首次运行 flutter pub get, Flutter 将会保存在 pubspec.lock lockfile 中找到的具体 package 版本。这将确保当你或者团队中其他开发者运行 flutter pub get 后能得到相同版本的 package。

如果你想升级到 package 的最新版本,比如使用 package 的最新特性,请运行 flutter pub upgrade 。这将检索你在 pubspec.yaml 文件中指定的版本约束所允许的最高可用版本。

案例

在flutter项目中导入hive包,在pubspec.yaml文件中添加配置:

执行flutter pub get,可以在 pubspec.lock 中看到 hive 版本是2.1.0,这是因为目前hive的最新版本是2.1.0,配置“^”表示向最新版本兼容,具体可查看Package版本管理( https://dart.cn/tools/pub/versioning ),所以再执行flutter pub upgrade 可以看到版本还是2.1.0,这个时候会发现pub get和 pub upgrade 效果一样。

但是未来如果 hive 发布了2.2.0版本,这个时候使用flutter pub get在pubspec.lock中看到hive版本依旧是2.1.0,而执行flutter pub upgrade 后在pubspec.lock中看到hive版本就是2.2.0。

现在先在flutter 项目的pubspec.yaml文件添加配置,指定hive版本是2.0.5,如下:

这个时候执行flutter pub get后,可以在pubspec.lock的文件中看到hive版本是2.0.5,如果这个时候更改配置为 hive: ^2.0.5,再执行flutter pub get就会发现在pubspec.lock的文件中看到hive版本还是2.0.5,这个时候可以执行flutter pub outdated查看依赖的每个 package,如下图,

可以看到,Upgrable项hive版本号为2.1.0,执行flutter pub upgrade 后可以看到在pubspec.lock的文件中看到hive版本是2.1.0

在pubspec.yaml文件添加配置:

lxx_package_demo信息如下图:

执行flutter pub get后在pubspec.lock中看到flutter_log版本是0.0.1

现在修改lxx_package_demo版本号为0.0.2,再执行flutter pub get

会发现版本会及时更新为0.0.2,这个时候执行flutter pub get/upgrade效果一样

参考文档:
https://blog.csdn.net/Nathan1987_/article/details/90212896
https://www.cnblogs.com/lulushen/p/14150544.html

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
豆瓣酱放多了怎么补救 鑫创sssbd量产工具 为了了解某校1500名学生的体质状况,随机调查了这个学校内一定数量学生... 564÷85的竖式如何列? 上海房屋过户 要准备什么资料 个人卖房要提供哪些资料 房屋交易资料需要哪些 房子买卖要哪些资料 房产交易需要什么资料 ...让重锤自由下落,打出的一条纸带如图所示,图中 怎么消除吉利帝豪GS胎压灯 我的手机被监控了怎么办 怎么解除监控 吉利帝豪gl21款胎压显示如何复位 我吉利帝豪GL,轮胎胎压正常,为什么一直报警? 男人说死心了,不过了! 吉利帝豪胎压报警怎么消除? 吉利帝豪gl胎压灯怎么消除 一线城市有哪几个呢? 帝豪gl胎压如何消除 25×45估算大约是多少? 76x9估算多少? 219×3估算大约是多少? 293×5估算大约是多少? 帝豪gl怎么消除胎压灯 ...用新打开的窗口显示不出来,而用window.location.href=url却可以_百... pencil进水能瞒过售后吗 CPI越高越好吗? CPI上涨会引发通货膨胀吗? 我要一个超星学习通电脑版的,我在网上下不了,请你告诉我方法_... word中怎样选中一排? Flutter 入门和教程导航 怎么在支付宝中申请健康码? Flutter中屏幕适配,尺寸设置 命令行执行flutter doctor无响应原因追踪及解决 用三个“每”一个“还有”和一个“都”造句 爱妈妈短句说说 2021母亲节祝妈妈节日快乐的句子说说 帝豪胎压灯怎么消?帝豪胎压监测灯如何复位 ...疾病险会有投保限制,可以在几家保险公司都投保重大疾病险吗... 手刹是什么意思?手刹是什么制动 手刹叫什么制动?手刹的学名叫什么 吉利帝豪缤瑞胎压灯怎么消除 佩恩出现在第几集 火影忍者佩恩在多少集出场 什么软件能给自己的手机系统升级啊 r22空调不抽真空行吗 RPG7火箭筒一次能装下几发炮弹? 新出的火箭筒在生化中的载弹量是多少?强吗?用过的回答!!! 戏《squad》中民兵的RPG能携带几发弹药 学术科研需求是什么 学习和科研中对学术信息的需求是什么