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

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

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

相关文章

SQL-Labs靶场“26-28”关通关教程

君衍. 一、二十六关 基于GET过滤空格以及注释报错注入1、源码分析2、绕过思路3、updatexml报错注入 二、二十六a关 基于GET过滤空格注释字符型注入1、源码分析2、绕过思路3、时间盲注 三、二十七关 基于union及select的过滤单引号注入1、源码分析2、绕过思路3、联合查询注入4、…

CELL文献速递 | 了解微生物如何在社会中传播并塑造我们的健康

谷禾健康 当人还是婴儿时,会从父母那里得到微生物;和宠物玩耍或接触时,也会从宠物那得到微生物;有时候人没有直接和动物玩耍,只是接触动物的粪便,甚至其他环境的微生物,都会交换微生物... 这些其…

智慧治水丨计讯物联水利RTU助推小型水库出险加固工程建设与管理

日前,水利部印发《关于健全小型水库除险加固和运行管护机制的意见》(以下简称《意见》),健全小型水库除险加固和运行管护常态化机制,提高小型水库安全管理水平。《意见》提出了“十四五”的两大管理机制,通…

adb下载安装及使用教程

adb下载安装及使用教程 一、ADB的介绍1.ADB是什么?2.内容简介3.ADB常用命令1. ADB查看设备2. ADB安装软件3. ADB卸载软件4. ADB登录设备shell5. ADB从电脑上发送文件到设备6. ADB从设备上下载文件到电脑7. ADB显示帮助信息 4.为什么要用ADB 二、ADB的下载1.Windows版…

Python中reduce函数和lambda表达式的学习

reduce函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数…

【论文精读】DINOv2

摘要 学习与特定任务无关的预训练表示已经成为自然语言处理的标准,这些表示不进行微调,即可在下游任务上明显优于特定任务模型的性能。其主要得益于使用无监督语言建模目标对大量原始文本进行预训练。 遵循NLP中的这种范式转变,以探索计算机视…

iSlide插件2024免费版(包含52 个PPT设计辅助功能,9 大在线资源库,以及超 50 万 专业)

一、功能介绍 iSlide是一款专为PowerPoint设计的插件,它集合了众多设计与效率提升的功能,帮助用户更快速、更美观地制作演示文稿。 主题设计:提供多种设计主题,用户只需一键应用,即可为幻灯片赋予统一的视觉风格。智…

每次提出一个bug都让测试重现,描述得那么清楚,自己操作下不会吗?

一说到测试和开发的关系,你一定会想到一个词“冤家”。 开发的工作就是按照PM的设计将产品最终造出来,而测试则是在开发已完成的工作里纠错。so,测试的工作会让开发很不爽,人之常情,谁都不喜欢自己的劳动成果被别人挑…

react路由基础

1.目录 A. 能够说出React路由的作用 B. 能够掌握react-router-dom的基本使用 C. 能够使用编程式导航跳转路由 D. 能够知道React路由的匹配模式 2.目录 A. React路由介绍 B. 路由的基本使用 C. 路由的执行过程 D. 编程式导航 E. 默认路由 F. 匹配模式 3.react路由介绍 现代…

开源项目:图像分类技术在医疗影像分析中的应用与实践

一、引言 在当今快速发展的医疗行业中,数字医疗正逐渐成为提升医疗服务质量和效率的关键力量。本项目旨在通过整合医药电商、远程问诊、慢病管理等多维度服务,为消费者和企业提供全面的医疗解决方案。项目的核心在于运用先进的图像分类技术,以…

回归测试:在不断变化的环境中确保软件的稳定性

软件开发是一个复杂的过程,需要不断变化和更新以满足客户不断变化的需求,但它们也可能产生新问题或导致旧问题重新出现。这就是回归测试的用武之地——它是在不断变化的环境中确保软件稳定性的重要组成部分。 在这篇文章中,我们将深入探讨什…

第40期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大语言模型(LLM)等安全领域应用的知识。在这里,您可以找…

基于springboot + vue实现的前后端分离-在线旅游网站系统(项目 + 论文)

项目介绍 本旅游网站系统采用的数据库是MYSQL ,使用 JSP 技术开发,在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 技术选型 后端: SpringBoot Mybatis 数据库 : MyS…

UE5 文字游戏(1) 仅UI截图转换为texture2d(适用于window端)

目录 需求 思路 1.截图并读取到本地 2.本地读取图片并转换为纹理2d 效果展示 找了好多的解决办法,都不管用。这个算是折中的。 需求 将当前的用户控件(ui)截图下来,并赋值到一个texture2d上。 我的需求:文字游戏…

初学JavaWeb开发总结

0 什么是Web开发 Web: 全球广域网,又称万维网(www World Wide Web),能够通过浏览器访问的网站。 Web开发,就是开发网站的,如:淘宝、京东等等。 1 网站的工作流程 流程: 浏览器先向前端服务器请求前端资…

Cesium 自定义Primitive-线

一、创作思路 1、创建一个自定义CustomPrimitive 2、可动态更新线的点位 3、方便后期绘制线 二、实现代码 1、创建一个CustomPolylinePrimitive类,并加入更新的代码 export default class CustomPolylinePrimitive {constructor(options) {this._props options;/*** 渲染列表…

EchoServer回显服务器封装与测试

目录 类实现 编译测试 这一篇本质上是为了TcpServer而做的一层封装,让外界调用更加简洁 参考上文 TcpServer服务器管理模块(模块十)-CSDN博客 类实现 echo.hpp #include "../server.hpp"class EchoServer { private:TcpServer _server;private:void OnConnect…

vite打包构建时环境变量(env)生成可配置的js文件

现实需求 在vite开发过程中,一些变量可以放在.env(基础公共部分变量).env.dev(开发环境)、.env.production(生产环境)中管理,通常分成开发和生产两个不同的配置文件管理&#xff0c…

三天学会阿里分布式事务框架Seata-应用seata AT模式方案解决分布式事务问题

锋哥原创的分布式事务框架Seata视频教程: 实战阿里分布式事务框架Seata视频教程(无废话,通俗易懂版)_哔哩哔哩_bilibili实战阿里分布式事务框架Seata视频教程(无废话,通俗易懂版)共计10条视频&…

dolphinscheduler海豚调度(四)钉钉告警

在之前的博文中,我们已经介绍了DolphinScheduler海豚调度的基本概念和工作流程,以及Shell任务和SQL任务的实践。今天,让我们来学习DolphinScheduler中的另一个重要功能:钉钉告警。 钉钉群添加机器人 在钉钉群添加机器人&#xf…