CentOS上Flutter代码管理实践

一环境与版本管理

安装与路径:将FlutterSDK解压到如**/opt/flutter**,并把**/opt/flutter/bin加入PATH;执行flutterdoctor**验证环境。

多版本管理:使用FVM(FlutterVersionManager)管理多个Flutter版本,便于不同项目切换。

全局安装与项目使用:

pubglobalactivatefvm

fvmuse--force(会在项目根目录生成.fvm并写入版本)

fvmlist查看已安装与当前使用版本

建议:在团队协作中将.fvm纳入版本控制,并在CI中通过FVM或预装指定版本保持一致性。

二依赖管理

核心文件与命令:所有依赖由项目根目录的pubspec.yaml定义,常用命令如下:

安装依赖:flutterpubget

新增依赖:flutterpubadd

移除依赖:flutterpubremove

升级依赖:flutterpubupgrade(不改动版本约束);如需自动升级版本约束可用–major-versions/--minor-versions

查看依赖树:flutterpubdeps

依赖异常:flutterclean后重新flutterpubget

示例(pubspec.yaml片段):

dependencies:

flutter:sdk:flutter

cupertino_icons:^1.0.2

http:^1.1.0

建议:锁定关键依赖版本,谨慎使用浮动版本;在CI中固定pubspec.lock以确保可重复构建。

三版本控制与分支策略

初始化与远程:

gitinit

gitadd.&&gitcommit-m“Initialcommit”

gitremoteaddorigin&&gitpush-uoriginmain

分支模型(示例):

main:稳定发布

dev:日常集成

feature/*:功能开发

release/*:预发布与回归

hotfix/*:紧急修复

规范建议:

提交前执行flutteranalyze、fluttertest,确保代码质量

使用.gitignore忽略.fvm、build/、.idea/.vscode(团队统一配置)、.dart_tool/等

通过Git标签(gittagv1.0.0)标记发布版本,便于回溯与回滚。

四持续集成与自动化交付

Jenkins在CentOS的落地要点:

节点要求:Android构建在Linux(含CentOS)即可;iOS构建必须使用macOS节点(Xcode/CocoaPods)

工具与插件:JDK11+、FlutterSDK、AndroidSDK/Gradle/NDK(可选)、Fastlane(iOS发布)

关键步骤:flutterdoctor-v→flutterpubget→flutteranalyze→fluttertest→构建APK/IPA→归档产物→部署/分发

示例Jenkinsfile(核心片段):

pipeline{

agentany

environment{

FLUTTER_HOME=‘/opt/flutter’

PATH=“$FLUTTER_HOME/bin:$PATH”}

stages{

stage(‘Setup’){steps{sh‘flutterdoctor-v’;sh‘flutterpubget’}}

stage(‘Analyze’){steps{sh‘flutteranalyze’}}

stage(‘Test’){steps{sh‘fluttertest’}}

stage(‘BuildAndroid’){

when{branch‘dev’}

steps{sh‘flutterbuildapk--release--dart-define=API_ENV=prod’}

archiveArtifactsartifacts:‘build/app/outputs/flutter-apk/*.apk’}

stage(‘BuildiOS’){

agent{label‘mac’}

when{branch‘release’}

steps{sh‘flutterbuildipa--export-options-plist=ios/ExportOptions.plist’}}

stage(‘Deploy’){steps{/*上传分发逻辑*/}}}

post{always{junit‘/test-results//*.xml’}}

}

其他选择:也可用GitHubActions等托管CI,步骤类似(setupFlutter、pubget、analyze、test、build)。