Flutter pubspec.yaml 使用方式

Flutter pubspec.yaml 使用方式

pubspec.yaml 是 Flutter 项目中最重要的配置文件之一,用于管理应用的基本信息、依赖项、资源以及构建配置等内容。


1. 基本结构和字段

基本信息

name: my_flutter_app        # 应用的名称
description: A new Flutter project  # 项目的描述
version: 1.0.0+1           # 应用的版本号和内部版本号
homepage: https://example.com  # 项目的主页 (可选)
repository: https://github.com/my_flutter_app # 用于提供项目的源代码仓库地址 (可选)
publish_to: "none"         # 是否发布到 Pub (用于私有项目)

环境要求

environment:sdk: ">=2.19.0 <3.0.0"   # Dart SDK 的版本范围flutter: ">=3.7.0"       # Flutter SDK 的版本范围 (可选)

2. 添加依赖项

普通依赖

用于添加 Dart 和 Flutter 包依赖:

dependencies:flutter:sdk: flutter          # Flutter SDK 必须的核心包http: ^0.15.0           # 添加第三方依赖包及其版本provider: ^6.0.0        # 依赖其他库 (Pub.dev 上的库)

开发依赖

仅在开发环境中使用的依赖:

dev_dependencies:flutter_test:sdk: flutter          # 测试框架lint: ^2.0.0            # 代码分析工具

依赖本地包

引用本地的 Dart 包:

dependencies:my_local_package:path: ../my_local_package

依赖 Git 仓库

引用托管在 Git 仓库中的包:

dependencies:my_git_package:git:url: https://github.com/username/repository.gitref: main          # 指定分支path: packages/package_name  # 指定子目录 (可选)

依赖特定的 SDK

引用基于 Dart 或 Flutter SDK 的包:

dependencies:flutter:sdk: flutter

3. 配置资源

静态资源

添加应用使用的图像、字体等资源:

flutter:assets:- assets/images/logo.png      # 单个资源文件- assets/images/              # 整个文件夹

自定义字体

为项目添加自定义字体:

flutter:fonts:- family: Robotofonts:- asset: assets/fonts/Roboto-Regular.ttf- asset: assets/fonts/Roboto-Bold.ttfweight: 700

4. 配置插件

添加平台特定的依赖(iOS、Android 等):

flutter:plugin:platforms:android:package: com.example.mypluginpluginClass: MyPluginios:pluginClass: MyPlugin

5. 设置执行脚本(Flutter 3.7+ 支持)

支持 scripts 字段定义自定义脚本:

scripts:build_runner: flutter packages pub run build_runner build

运行命令:

flutter pub run scripts build_runner

6. 配置平台支持

启用或禁用某些平台支持:

flutter:module:androidPackage: com.example.my_flutter_appiosBundleIdentifier: com.example.myFlutterAppgenerate:platforms:- android- ios- web

7. 配置最低 SDK 要求

environment:flutter: ">=3.3.0"

8. 提升构建效率:缓存与可选字段

启用 Dart 分析器规则

analyzer:exclude:- test/mock_data.dart       # 排除文件

配置缓存依赖

避免重新下载 Pub 包,覆盖项目中某个依赖的版本。当某些包依赖的库版本冲突时,可以通过 dependency_overrides 来强制使用指定版本。

dependency_overrides:http: ^0.15.0

9. 自定义构建版本号

版本号格式为 x.y.z+build_number,例如:

version: 1.2.3+10
  • x.y.z:语义化版本号(主版本号、次版本号和补丁版本号)。
  • build_number:内部构建版本号。

10. 自动生成的注释区域

Flutter 自动生成一些注释内容,建议保留以便参考。例如:

# To add assets to your application, add an assets section, like this:
# assets:
#   - assets/images/a_dot_burr.jpeg
#   - assets/images/a_dot_ham.jpeg

11. 插件(国际化)

在某些项目中,flutter_intl 插件用于国际化配置:

flutter_intl:enabled: trueuse_recommended_settings: true

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

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

相关文章

NLP中常见的分词算法(BPE、WordPiece、Unigram、SentencePiece)

文章目录 一、基本概念二、传统分词方法2.1 古典分词方法2.2 拆分为单个字符 三、基于子词的分词方法&#xff08;Subword Tokenization&#xff09;3.1 主要思想3.2 主流的 Subword 算法3.3 Subword 与 传统分词方法的比较 四、Byte Pair Encoding (BPE)4.1 主要思想4.2 算法过…

OceanBase数据库设计与管理:构建高效分布式数据架构基石

《OceanBase数据库设计与管理&#xff1a;构建高效分布式数据架构基石》 在当今数字化浪潮汹涌澎湃的时代&#xff0c;数据量呈爆炸式增长&#xff0c;业务复杂度不断攀升&#xff0c;传统数据库在应对海量数据存储、高并发读写以及高可用性需求时愈发捉襟见肘。OceanBase作为…

搭建Hadoop分布式集群

软件和操作系统版本 Hadoop框架是采用Java语言编写&#xff0c;需要java环境&#xff08;jvm&#xff09; JDK版本&#xff1a;JDK8版本 &#xff0c;本次使用的是 Java: jdk-8u431-linux-x64.tar.gz Hadoop: hadoop-3.3.6.tar.gz 三台Linux虚拟节点: CentOS-7-x86_64-DVD-2…

分享一下使用高版本(3.10.x)sonar-maven-plugin 进行构建时需要注意的两个问题

SonarScanner用来执行源代码分析。这个独立的程序在CI/CD主机上运行&#xff0c;并将分析结果发送到SonarQube服务器&#xff0c;由其计算分析结果&#xff0c;计算质量门并生成报告。我们可以通过命令行和maven构建两种方式来执行SonarScanner的源码分析。关于SonarScanner更多…

C语言---函数和数组实践:扫雷游戏

函数和数组实践&#xff1a;扫雷游戏 在这次的实践项目中&#xff0c;需要编写一个可以在在控制台运行的经典的扫雷游戏。 一、游戏要求 游戏有菜单&#xff0c;可以通过菜单实现继续玩或者退出游戏游戏要求棋盘9*9&#xff0c;雷&#xff08;10个&#xff09;要求随机布置可…

数据结构与算法之二叉树: LeetCode 701. 二叉搜索树中的插入操作 (Ts版)

二叉搜索树中的插入操作 https://leetcode.cn/problems/insert-into-a-binary-search-tree/description/ 描述 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和要插入树中的值 value &#xff0c;将值插入二叉搜索树返回插入后二叉搜索树的根节点。 输入数据 保…

数据集-目标检测系列- 石榴 检测数据集 pomegranate >> DataBall

数据集-目标检测系列- 石榴 检测数据集 pomegranate >> DataBall DataBall 助力快速掌握数据集的信息和使用方式&#xff0c;会员享有 百种数据集&#xff0c;持续增加中。 需要更多数据资源和技术解决方案&#xff0c;知识星球&#xff1a; “DataBall - X 数据球(fre…

项目实战——使用python脚本完成指定OTA或者其他功能的自动化断电上电测试

前言 在嵌入式设备的OTA场景测试和其他断电上电测试过程中&#xff0c;有的场景发生在夜晚或者随时可能发生&#xff0c;这个时候不可能24h人工盯着&#xff0c;需要自动化抓取串口日志处罚断电上电操作。 下面的python脚本可以实现自动抓取串口指定关键词&#xff0c;然后触发…

深入详解DICOM医学影像定位线相关知识:理解定位线的概念、定位线的作用以及定位线显示和计算原理

DICOM医学影像中的定位线(Localization Line) 在医学影像学中,DICOM是用于存储和交换医学影像的标准格式。定位线(Localization Line)在医学影像的显示和分析中起着重要作用,它帮助医生和医学专业人员在影像中精确地标定重要的解剖结构、区域或特征,辅助进行定位、治疗计…

《自动驾驶与机器人中的SLAM技术》ch8:基于 IESKF 的紧耦合 LIO 系统

目录 基于 IESKF 的紧耦合 LIO 系统 1 IESKF 的状态变量和运动过程 1.1 对名义状态变量的预测 1.2 对误差状态变量的预测及对协方差矩阵的递推 2 观测方程中的迭代过程 3 高维观测中的等效处理 4 NDT 和 卡尔曼滤波的联系 5 紧耦合 LIO 系统的主要流程 5.1 IMU 静止初始化 …

Java语言的并发编程

Java语言的并发编程 引言 在现代软件开发中&#xff0c;随着计算机硬件性能的不断提升&#xff0c;应用程序的并发性变得愈加重要。并发编程是提升程序性能和响应速度的有效手段&#xff0c;Java作为一门广泛使用的编程语言&#xff0c;提供了丰富的并发编程机制。本文将深入…

Go语言开发高效的RPC服务的方法

在Go语言中开发高效的RPC&#xff08;远程过程调用&#xff09;服务&#xff0c;可以通过以下几个关键步骤和方法来实现&#xff1a; 一、定义服务接口 首先需要定义需要提供的RPC方法及其参数和返回值。可以使用Go语言的interface类型来定义RPC接口&#xff0c;同时也可以为…

HTML实战课堂之简单的拜年程序

一、目录&#xff1a; &#xfffc;&#xfffc; 一、目录&#xff1a; 二、祝福 三&#xff1a;代码讲解 &#xff08;1&#xff09;详细解释&#xff1a; 1.HTML部分 2. CSS部分 三、运行效果&#xff08;随机截图&#xff09;&#xff1a; 四、完整代码&#xff1a; 二、祝福…

vue 与 vue-json-viewer 实现 JSON 数据可视化

前言 接口的调试和测试是确保系统稳定性的重要步骤。为了让开发人员和测试人员能够直观地查看接口返回的 JSON 数据&#xff0c;使用合适的工具至关重要。vue-json-viewer 插件为 vue 开发者提供了一个简单而强大的解决方案。本文将详细介绍如何在 vue 项目中使用该插件&#x…

用Pygame Zero 画矩形(空心、实心、多个矩形、多层同心矩形、彩虹条矩形、条纹相间、随机颜色矩形、特殊效果、渐变效果)

用Pygame Zero 画矩形 &#xff08;空心、实心、多个矩形、多层同心矩形、彩虹条矩形、条纹相间、随机颜色矩形、特殊效果、渐变效果&#xff09; 本文目录&#xff1a; 零、时光宝盒 一、绘制空心矩形 二、绘制实心矩形 三、画多个静止矩形 四、绘制多层同心矩形 4.1、…

【Rust自学】11.9. 单元测试

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.9.1. 测试的分类 Rust把测试分为两类&#xff0c;一个是单元测试&#xff0c;一个是集成测试。 单元测试比较小也比较专注&#xff…

[java基础-集合篇]优先队列PriorityQueue结构与源码解析

优先队列PriorityQueue 优先级队列表示为平衡二进制堆&#xff1a; queue[n] 的两个子级是 queue[2*n1] 和 queue[2*&#xff08;n1&#xff09;]。 注&#xff1a;左子节点index2*parentIndex1,右子节点index2*parentIndex2,源码中计算parent位置时就是这样反过来计算的 优…

(经过验证)在 Ubuntu 系统中为 VSCode、PyCharm 终端及 Jupyter Notebook 配置代理的完整方案

文章目录 1. 通过系统环境变量配置代理步骤一&#xff1a;打开终端步骤二&#xff1a;编辑 ~/.bashrc 文件步骤三&#xff1a;添加代理环境变量步骤四&#xff1a;保存并关闭文件步骤五&#xff1a;使配置生效步骤六&#xff1a;重启相关应用步骤七&#xff1a;使用代理函数 2.…

深入探讨 Vue.js 的动态组件渲染与性能优化

Vue.js 作为一款前端领域中备受欢迎的渐进式框架&#xff0c;以其简单优雅的 API 和灵活性受到开发者的喜爱。在开发复杂应用时&#xff0c;动态组件渲染是一项极其重要的技术&#xff0c;它能够在页面中动态地加载或切换组件&#xff0c;从而显著提升应用的灵活性与用户体验。…

回归预测 | MATLAB实RVM-Adaboost相关向量机集成学习多输入单输出回归预测

回归预测 | MATLAB实RVM-Adaboost相关向量机集成学习多输入单输出回归预测 目录 回归预测 | MATLAB实RVM-Adaboost相关向量机集成学习多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 RVM-Adaboost相关向量机集成学习多输入单输出回归预测是一种先进…