温馨提示×

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 忽略 .fvmbuild/.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)。

0