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

news2025/2/25 15:50:48
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)。


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都能提供帮助,使得版本管理变得简单和高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1473690.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据湖delta lake

Table of Content1. 课程2. 前置技能3. 一、数据湖概念[了解] 3.1. 1.1 企业的数据困扰 3.1.1. 困扰一:互联网的兴起和数据孤岛3.1.2. 困扰二:非结构化数据3.1.3. 困扰三:保留原始数据3.1.4. 补充:什么是结构化? 3.1.4…

React_使用es5和es6语法渲染和添加class

React入门 //react的核心库 <script src"https://cdn.jsdelivr.net/npm/react17/umd/react.development.js"></script> //react操作dom的核心库&#xff0c;类似于jquery <script src"https://cdn.jsdelivr.net/npm/react-dom17/umd/react-dom.…

大型电商日志离线分析系统(一)

一、项目需求分析 某大型网站日志离线分析系统 1.1 概述 该部分的主要目标就是描述本次项目最终七个分析模块的页面展示。 1.2 工作流 在我们的demo展示中&#xff0c;我们使用jqueryecharts的方式调用程序后台提供的rest api接口&#xff0c;获取json数据&#xff0c;然后…

探索2024年3月5-7日第12届国际生物发酵展-聚力微特电机

参展企业介绍 威海聚力微特电机股份有限公司成立于2004年5月&#xff0c;位于山东省威海市。是一家专业研发、生产和销售电机、液压站、机床冷却泵和电动板手的企业。主要产品有异步感应变频调速电机、永磁同步调速电机、油泵电机、铣头电机、高速电主轴、伺服力矩电机、节能型…

WPF 【十月的寒流】学习笔记(2):MVVM中是怎么实现通知的

文章目录 前言相关链接代码仓库项目配置代码初始代码ViewPersonViewModel 尝试老办法通知解决方案ObservableCollectionBindingListICollectionView 总结 前言 我们这次详细了解一下列表通知的底层是怎么实现的 相关链接 十月的寒流 MVVM实战技巧之&#xff1a;可被观测的集合…

Unity发布webgl获取浏览器的URL

Unity发布webgl获取浏览器的URL Unity发布webgl之后获取浏览器的url 在unity中创建文件夹Plugins&#xff0c;然后添加添加文件UnityGetBrowserURL.jslib var GetUrlFunc {//获取地址栏的URLStringReturnValueFunction: function () {var returnStr window.top.location.hre…

2024.2.25 模拟实现 RabbitMQ —— 网络通信设计(服务器)

目录 引言 约定应用层的通信协议 自定义应用层协议 Type Length PayLod 实现 Broker Server 类 属性 与 构造 启动 Broker Server 停止 Broker Server 处理客户端连接 读取请求 与 写回响应 根据请求计算响应 清除 channel 引言 生产者 和 消费者 都是客户端&…

STC-ISP原厂代码研究之 V3.7d汇编版本

最近在研究STC的ISP程序&#xff0c;用来做一个上位机烧录软件&#xff0c;逆向了上位机软件&#xff0c;有些地方始终没看明白&#xff0c;因此尝试读取它的ISP代码&#xff0c;但是没有读取成功。应该是目前的芯片架构已经将引导代码放入在了单独的存储块中&#xff0c;而这存…

硬盘无法格式化?正确格式化方法看这!(新版)

“我的电脑用了很久了&#xff0c;我想将它格式化&#xff0c;但是在操作时却提示硬盘无法格式化。这该怎么解决呢&#xff1f;应该怎么进行正确的格式化操作呢&#xff1f;” 在使用电脑时&#xff0c;有时候我们或许会因为各种原因想对硬盘进行格式化操作。但是在实际操作中&…

【非比较排序】计算排序算法

目录 CountSort计数排序 整体思想 图解分析 代码实现 时间复杂度&优缺分析 CountSort计数排序 计数排序是一种非比较排序&#xff0c;不需要像前面的排序一样去比较。 计数排序的特性总结&#xff1a; 1. 计数排序在数据范围集中时&#xff0c;效率很高&#xff0c;但…

Oracle内存计算应用模式

前言 内存计算是利用内存来加速数据访问和应用的性能&#xff0c;并降低应用开发复杂度的技术。近十年来&#xff0c;随着软硬件技术的发展和用户需求的成熟&#xff0c;内存计算技术已经得到了广泛地应用。 Oracle在内存计算领域具有非常重要的地位&#xff0c;这主要得益于…

leetcode移动零

leetcode移动零 Given an integer array nums, move all 0’s to the end of it while maintaining the relative order of the non-zero elements. Note that you must do this in-place without making a copy of the array. Example 1: Input: nums [0,1,0,3,12] Output…

北斗卫星赋能,宠物定位新篇章—追踪宠物,不再是难题

北斗卫星赋能&#xff0c;宠物定位新篇章—追踪宠物&#xff0c;不再是难题 随着社会的快速发展与科技的不断进步&#xff0c;人们的生活方式也在不断改变。宠物已经成为越来越多家庭的重要成员&#xff0c;在这个宠爱宠物的时代&#xff0c;如何确保宠物的安全&#xff0c;特…

ChatGPT学习第三周

&#x1f4d6; 学习目标 ChatGPT在各行各业的应用 探索ChatGPT在不同领域&#xff08;如教育、客户服务等&#xff09;的实际应用案例。 ChatGPT的局限性和挑战 讨论ChatGPT面临的挑战&#xff0c;包括偏见、误解及其限制。 ✍️ 学习活动 学习资料 《人工智能通用大模型(…

【ArcGIS】基本概念-空间参考与变换

ArcGIS基本概念-空间参考与变换 1 空间参考与地图投影1.1 空间参考1.2 大地坐标系&#xff08;地理坐标系&#xff09;1.3 投影坐标系总结 2 投影变换预处理2.1 定义投影2.2 转换自定义地理&#xff08;坐标&#xff09;变换2.3 转换坐标记法 3 投影变换3.1 矢量数据的投影变换…

同源不同页面之间的通信,SharedWorker使用

同源不同页面之间的通信&#xff0c;SharedWorker使用 描述实现结果 描述 同源不同页面之间的通信&#xff0c;使用SharedWorker&#xff0c;或者使用全局方法通信&#xff0c;这里使用SharedWorker来实现 mdn地址&#xff1a;https://developer.mozilla.org/zh-CN/docs/Web/A…

【Vue】组件通信2

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;Vue ⛺️稳中求进&#xff0c;晒太阳 v-model原理 原理&#xff1a; v-model本质是一个语法糖&#xff0c;例如在输入输入框上&#xff0c;就是value属性和input数据的合写&#xff08;注…

数据脱敏(八)静态脱敏

HuggingFists低代码平台提供Mysql,Postgresql,Oracle,ClickHouse等多种数据库连接插件及配套读写算子。提供ftp,sftp,百度盘&#xff0c;阿里云文件系统&#xff0c;腾讯文件系统等多种文件系统连接插件及配套读写算子。满足用户静态脱敏场景下各种数据源要求。 静态脱敏-数据库…

支持云端布署的云LIS系统,云LIS平台,部署一套可支持多家医院检验科共同使用

支持云端布署的云LIS系统源码&#xff0c;云LIS平台源码 基于B/S架构的实验室管理系统&#xff08;云LIS平台&#xff09;&#xff0c;整个系统的运行基于WEB层面&#xff0c;只需要在对应的工作台安装一个浏览器软件有外网即可访问。 LIS系统通过各种检验设备的网络连接&…

java数据结构与算法刷题-----LeetCode530. 二叉搜索树的最小绝对差

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 解题思路&#xff1a;时间复杂度O(n)&#xff0c;空间复杂度O(n) 一个有序…