当前位置: 首页 > news >正文

Flutter Version Manager (FVM): Flutter的版本管理终极指南

Flutter笔记
Flutter Version Manager (FVM)

- 文章信息 - Author: 李俊才 (jcLee95)
Visit me at: https://jclee95.blog.csdn.net
Email: 291148484@163.com.
Shenzhen China
Address of this article:https://blog.csdn.net/qq_28550263/article/details/136300307 my-website:http://thispage.tech/notes/flutter/FVM

https://bbs.huaweicloud.com/blogs/422586


【介绍】:在Flutter开发过程中,管理不同版本的Flutter SDK可能是一个挑战,尤其是当你同时在多个项目上工作,而这些项目又可能依赖于不同版本的Flutter。这里介绍一个解决方案:Flutter Version Manager (FVM)。

flutter-ljc


1. 概述

1.1 什么是FVM?

FVM是一个为Flutter开发的版本管理工具,它允许你在同一台机器上安装和使用多个Flutter版本。FVM提供了一种简单的方式来切换项目之间的Flutter版本,无需重新下载或配置。

1.2 为什么要使用FVM?

总结起来,使用 Flutter Version Management(FVM)的主要优点包括版本隔离、快速切换和节省空间。

版本隔离

首先,版本隔离是 FVM 的一个关键优点。它允许为每个项目维护独立的 Flutter 版本,从而避免了不同项目之间可能出现的版本冲突问题。由于不同的项目可能依赖于不同的 Flutter 版本,版本隔离确保了项目之间的独立性,使得开发者可以根据项目的需要选择合适的 Flutter 版本进行开发和测试,而无需担心可能会因为版本不匹配而导致的问题。

快速切换

其次,FVM 提供了快速切换 Flutter 版本的能力。通过简单的命令,开发者可以在不同的项目之间快速切换 Flutter 版本。这种灵活性使得开发者可以轻松地适应不同项目的需求,而无需手动管理不同版本的 Flutter SDK,大大提高了开发效率和便捷性。

最后,FVM 可以节省空间。由于 FVM 允许共享相同版本的 Flutter SDK,并且只需下载一次即可在多个项目中使用,因此可以避免重复下载相同版本的 Flutter SDK,从而节省了存储空间。特别是对于那些需要频繁切换 Flutter 版本或者同时在多个项目中使用 Flutter 的开发者来说,这种节省空间的优势尤为显著,可以有效地减少磁盘占用和下载时间。

节省空间

FVM 的主要优点包括版本隔离、快速切换和节省空间。这些优点使得开发者可以更加灵活地管理和使用 Flutter SDK,提高了开发效率和项目的可维护性。

2. FVM的安装方法

FVM 提供了多种安装方式,包括通过 pub、Homebrew 和 Chocolatey,让开发者可以根据自己的喜好和操作系统选择合适的安装方式。不论是哪种方式,安装完成后都可以方便地使用 FVM 来管理 Flutter 版本,提高开发效率和便捷性。

2.1 通过pub安装

首先是通过 pub 安装。运行下面的命令:

dart pub global activate fvm

这个命令会从 Dart 包管理器 pub 获取最新版本的 FVM,并将其安装到全局环境中。一旦安装完成,你就可以在任何地方使用 FVM 命令了,从而方便地管理 Flutter 版本。

2.2 通过Homebrew安装

其次是通过 Homebrew 安装。如果你使用 macOS,并且习惯使用 Homebrew 进行软件包管理,那么可以使用以下命令来安装 FVM:

brew tap leoafarias/fvm
brew install fvm

这个命令会将 FVM 添加到 Homebrew 的源中,并安装到你的系统中。通过 Homebrew 安装的方式,你可以享受到 Homebrew 提供的便捷性和管理优势。

2.3 通过Chocolatey安装

最后是通过 Chocolatey 安装。对于 Windows 用户,可以使用 Chocolatey 进行软件包管理,并通过以下命令安装 FVM:

choco install fvm

这个命令会从 Chocolatey 的软件源中获取最新版本的 FVM,并将其安装到你的系统中。通过 Chocolatey 安装,你可以快速方便地在 Windows 环境中使用 FVM,从而实现对 Flutter 版本的管理和切换。

2.4 在IDE中使用FVM

FVM还可以与IDE(如Android Studio)集成,通过配置Flutter SDK路径为.fvm/flutter_sdk,可以确保IDE使用FVM管理的Flutter版本。

3. FVM的基本用法解析

安装了Flutter Version Manager (FVM)之后,你将能够通过一系列命令来管理Flutter SDK的不同版本。这些命令不仅让版本管理变得简单,还支持高度自定义的项目构建配置。下面是如何使用这些基本命令的详细指南。

3.1 安装Flutter版本

要安装特定版本的Flutter SDK,可以使用fvm install命令。这个命令允许你指定一个特定的版本号或者渠道名(如stable, beta, dev, master)。

fvm install 3.16.9

或者,如果你想安装beta渠道的最新版本:

fvm install beta

3.2 切换Flutter版本

安装了Flutter的不同版本后,你可以使用fvm use命令为当前项目指定要使用的Flutter版本。这个命令会在项目目录下创建一个.fvm文件夹,其中包含指向所选Flutter版本的符号链接。

为当前项目使用特定版本:

fvm use 2.2.0

如果你想将某个版本设置为全局默认版本,可以添加–global标志:

fvm use 2.2.0 --global

3.3 列出已安装版本

要查看已经通过FVM安装的所有Flutter版本,可以使用fvm list命令。这个命令会列出所有已安装的版本,并且显示当前项目正在使用的版本。

fvm list

在这里插入图片描述

3.4 删除Flutter版本

如果你想删除已经安装的某个Flutter版本,可以使用fvm remove命令。这个命令会从你的机器上移除指定的Flutter版本,释放空间。

fvm remove 2.2.0

3.5 项目Flavors

FVM支持项目flavors,这意味着你可以为不同的构建配置指定不同的Flutter版本。这在你需要为不同的环境(如开发、测试和生产)使用不同版本的Flutter时非常有用。

要为特定flavor指定Flutter版本,可以在fvm use命令中使用–flavor选项:

fvm use 2.2.0 --flavor dev

这将为开发flavor设置Flutter版本为2.2.0。

通过这些基本命令,FVM提供了一种灵活而强大的方式来管理Flutter项目的版本。无论是在多个项目之间切换,还是为不同的构建配置指定特定版本,FVM都能简化这一过程。

3.6 配置和高级功能

FVM提供了一些配置选项,例如设置缓存路径,以及一些高级功能,如使用自定义Flutter版本或特定的git提交。这些功能使得FVM成为一个强大而灵活的工具,适用于各种复杂的开发场景。

4. 结论

FVM是一个强大的工具,可以帮助Flutter开发者更有效地管理不同版本的Flutter SDK。无论你是在多个项目之间切换,还是需要测试即将发布的Flutter版本,FVM都能提供帮助,使得版本管理变得简单和高效。

相关文章:

Flutter Version Manager (FVM): Flutter的版本管理终极指南

Flutter笔记 Flutter Version Manager (FVM) - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/136300307 my-websit…...

Docker技术概论(3):Docker 中的基本概念

Docker技术概论(3) Docker 中的基本概念 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://…...

死记硬背spring bean 的生命周期

1.bean的生命周期 我们平常经常使用类似于new Object()的方式去创建对象,在这个对象没有任何引用的时候,会被gc给回收掉。而对于spring而言,它本身存在一个Ioc容器,就是用来管理对象的,而对象的生命周期也完全由这个容…...

海外网红营销策略:如何将红人粉丝有效转化为品牌忠实粉丝?

在数字化时代,社交媒体已经成为品牌推广和营销的不可或缺的一部分。随着海外网红营销的崛起,品牌们纷纷将目光投向这个新兴的营销领域。然而,仅仅依赖网红的影响力来达到品牌传播的效果是不够的,更为重要的是如何将网红的粉丝转化…...

java之Bean对象

1. 什么是Bean? Bean被实例化的,是被Spring框架所管理的Java对象。 Spring容器会自动完成Bean的实例化。将所创建的的Bean自动注入到Ioc容器中以供调用。 spring框架中 IOC容器中管理的对象就是Bean对象 2. 第三方bean Bean 因为第三方bean&#xff0…...

Flink——芒果TV的实时数仓建设实践

目录 一、芒果TV实时数仓建设历程 1.1 阶段一:Storm/Flink JavaSpark SQL 1.2 阶段二:Flink SQLSpark SQL 1.3 阶段三:Flink SQLStarRocks 二、自研Flink实时计算调度平台介绍 2.1 现有痛点 2.2 平台架构设计 三、Flink SQL实时数仓分…...

卸载云服务器上的 MySQL 数据库

执行以下命令以停止 MySQL 服务: sudo service mysql stop执行以下命令以彻底卸载 MySQL: sudo apt-get remove --purge mysql-server mysql-client mysql-common sudo apt-get autoremove sudo apt-get autoclean 这将删除 MySQL 数据库服务器、客…...

AUTOSAR SPI详解

1.SPI通信 1)SPI通信脚 SCLO:串行时钟sclk。MTSR:主向从方向数据MTSR(主发送从接收)。MRST:从向主方向数据MRST(主接收从发送)。SLSO:从选择信号SLS,支持16路片选控制。 2) SPI状态机 2.SPI通信波形 在主…...

SpringBoot快速入门(黑马学习笔记)

需求 需求:基于SpringBoot的方式开发一个Web应用,浏览器发起请求/hello后,给浏览器返回字符串"Hello World~"。 开发步骤 第一步:创建SpringBoot工程项目 第二步:定义HelloController类,添加方…...

压力测试工具Jmeter的下载与使用

1、进入官网下载Jmeter https://jmeter.apache.org/ 国内镜像(下载的慢的话可以用国内镜像下载) https://mirrors.cloud.tencent.com/apache/jmeter/binaries/ 2、跳转到下载页面 3、根据不同系统下载相应版本的Jmeter压缩包,Linux系统下载…...

kubectl 陈述式资源管理方法

目录 陈述式资源管理方法 项目的生命周期 1.创建kubectl create命令 2.发布kubectl expose命令 service的4的基本类型 查看pod网络状态详细信息和 Service暴露的端口 查看关联后端的节点 ​编辑 查看 service 的描述信息 ​编辑在 node01 节点上操作,查看…...

从 iOS 设备恢复数据的 20 个iOS 数据恢复工具

作为 iPhone、iPad 或 iPod 用户,您可能普遍担心自己可能会丢失存储在珍贵 iOS 设备中的所有宝贵数据。数据丢失的原因多种多样,这里列出了一些常见原因: 1. iOS 软件更新 2. 恢复出厂设置 3. 越狱 4. 误操作删除数据 5. iOS 设备崩溃 …...

cpp基础学习笔记03:类型转换

static_cast 静态转换 用于类层次结构中基类和派生类之间指针或者引用的转换。up-casting (把派生类的指针或引用转换成基类的指针或者引用表示)是安全的;down-casting(把基类指针或引用转换成子类的指针或者引用)是不安全的。用于基本数据类型之间的转换&#xff…...

H3C OSPF 外部路由引入实验

H3C OSPF 外部路由引入实验 实验拓扑 实验需求 按照图示配置 IP 地址R1,R2,R3 运行 OSPF 使内网互通,所有接口(公网接口除外)全部宣告进 Area 0;要求使用环回口作为 Router-id业务网段不允许出现协议报文…...

ARM简介

ARM:ARM是Advanced RISC Machine的缩写,意为高级精简指令集计算机。 英国ARM公司,2016年被软银创始人孙正义斥资320亿美元收购了。现在是软银旗下的芯片设计公司,总部位于英国剑桥,专注于设计芯片,卖芯片生…...

MySQL(基础篇)——事务

一.事务简介 事务是一组操作的集合,他是一个不可分割的单位,事务会把所有的操作作色一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 默认MySQL的事务是自动提交的,也就是说&#xff0c…...

XGB-15:调参注意事项

参数调优是机器学习中的一门黑艺术,一个模型的最优参数可能取决于许多情境。因此,要为此提供全面的指南是不可能的。 了解偏差-方差权衡Bias-Variance Tradeoff 当能允许模型变得更加复杂(例如更深),模型具有更好的拟…...

蓝桥杯_定时器的基本原理与应用

一 什么是定时器 定时器/计数器是一种能够对内部时钟信号或外部输入信号进行计数,当计数值达到设定要求时,向cpu提出中断处理请求,从而实现,定时或者计数功能的外设。 二 51单片机的定时/计数器 单片机外部晶振12MHZ,…...

【跨境电商须知】FP独立站的特点和痛点有哪些?

无论是做独立站,还是做亚马逊,都有各自的难点。自己做独立站若要在跨境行业长足发展,既要知道FP独立站有什么特点,要清楚FP独立站的痛点并一一克服。 一、FP独立站的特点 与依赖第三方平台相比,拥有自己的域名、服务器…...

js 精确计算(解决js四则运算精度缺失问题)

js的小数的运算,可能会得到一个不精确的结果,因为所有的运算都要转换成二进制去计算,然而,二进制无法精确表示1/10。 var a 0.1 0.2; console.log(a); //打印结果:0.30000000000000004因此需要使用以下方法实现精确…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、👨‍🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨‍&#x1f…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践,很多人以为AI已经强大到不需要程序员了,其实不是,AI更加需要程序员,普通人…...

Windows 下端口占用排查与释放全攻略

Windows 下端口占用排查与释放全攻略​ 在开发和运维过程中,经常会遇到端口被占用的问题(如 8080、3306 等常用端口)。本文将详细介绍如何通过命令行和图形化界面快速定位并释放被占用的端口,帮助你高效解决此类问题。​ 一、准…...