centos上flutter代码如何管理
小樊
42
2025-11-29 21:46:36
CentOS 上 Flutter 代码管理实践
一 环境与版本管理
- 安装与路径:将 Flutter SDK 解压到如**/opt/flutter**,并把**/opt/flutter/bin加入 PATH;执行flutter doctor**验证环境。
- 多版本管理:使用 FVM(Flutter Version Manager) 管理多个 Flutter 版本,便于不同项目切换。
- 全局安装与项目使用:
- pub global activate fvm
- fvm use --force(会在项目根目录生成 .fvm 并写入版本)
- fvm list 查看已安装与当前使用版本
- 建议:在团队协作中将 .fvm 纳入版本控制,并在 CI 中通过 FVM 或预装指定版本保持一致性。
二 依赖管理
- 核心文件与命令:所有依赖由项目根目录的 pubspec.yaml 定义,常用命令如下:
- 安装依赖:flutter pub get
- 新增依赖:flutter pub add <package_name>
- 移除依赖:flutter pub remove <package_name>
- 升级依赖:flutter pub upgrade(不改动版本约束);如需自动升级版本约束可用 –major-versions / --minor-versions
- 查看依赖树:flutter pub deps
- 依赖异常:flutter clean 后重新 flutter pub get
- 示例(pubspec.yaml 片段):
- dependencies:
- flutter:
sdk: flutter
- cupertino_icons: ^1.0.2
- http: ^1.1.0
- 建议:锁定关键依赖版本,谨慎使用浮动版本;在 CI 中固定 pubspec.lock 以确保可重复构建。
三 版本控制与分支策略
- 初始化与远程:
- git init
- git add . && git commit -m “Initial commit”
- git remote add origin && git push -u origin main
- 分支模型(示例):
- main:稳定发布
- dev:日常集成
- feature/*:功能开发
- release/*:预发布与回归
- hotfix/*:紧急修复
- 规范建议:
- 提交前执行 flutter analyze、flutter test,确保代码质量
- 使用 .gitignore 忽略 .fvm、build/、.idea/.vscode(团队统一配置)、.dart_tool/ 等
- 通过 Git 标签(git tag v1.0.0) 标记发布版本,便于回溯与回滚。
四 持续集成与自动化交付
- Jenkins 在 CentOS 的落地要点:
- 节点要求:Android 构建在 Linux(含 CentOS)即可;iOS 构建必须使用 macOS 节点(Xcode/CocoaPods)
- 工具与插件:JDK 11+、Flutter SDK、Android SDK/Gradle/NDK(可选)、Fastlane(iOS 发布)
- 关键步骤:flutter doctor -v → flutter pub get → flutter analyze → flutter test → 构建 APK/IPA → 归档产物 → 部署/分发
- 示例 Jenkinsfile(核心片段):
- pipeline {
- agent any
- environment {
- FLUTTER_HOME = ‘/opt/flutter’
- PATH = “$FLUTTER_HOME/bin:$PATH”
}
- stages {
- stage(‘Setup’) { steps { sh ‘flutter doctor -v’; sh ‘flutter pub get’ } }
- stage(‘Analyze’) { steps { sh ‘flutter analyze’ } }
- stage(‘Test’) { steps { sh ‘flutter test’ } }
- stage(‘Build Android’) {
- when { branch ‘dev’ }
- steps { sh ‘flutter build apk --release --dart-define=API_ENV=prod’ }
- archiveArtifacts artifacts: ‘build/app/outputs/flutter-apk/*.apk’
}
- stage(‘Build iOS’) {
- agent { label ‘mac’ }
- when { branch ‘release’ }
- steps { sh ‘flutter build ipa --export-options-plist=ios/ExportOptions.plist’ }
}
- stage(‘Deploy’) { steps { /* 上传分发逻辑 */ } }
}
- post { always { junit ‘/test-results//*.xml’ } }
- }
- 其他选择:也可用 GitHub Actions 等托管 CI,步骤类似(setup Flutter、pub get、analyze、test、build)。