Flutter版本管理辅助插件phntmxyz_bump_version_sidekick_plugin的使用
Flutter版本管理辅助插件phntmxyz_bump_version_sidekick_plugin的使用
描述
phntmxyz_bump_version_sidekick_plugin
是一个用于 sidekick
命令行工具的插件,主要功能包括:
- 升级包的版本(主版本、次版本、修订版本)
- 可选地提交版本升级
- 提供修改API来调整其他文件(例如
CHANGELOG.md
)
安装
先决条件
- 安装
sidekick
:dart pub global activate sidekick
- 生成自定义的
sidekick
CLI:sidekick init
安装插件到自定义的 sidekick
CLI 类似于使用 pub
工具安装包。
从 pub.dev 安装此插件
your_custom_sidekick_cli sidekick plugins install phntmxyz_bump_version_sidekick_plugin
使用方法
your_custom_sidekick_cli bump_version [package-path] [--minor|patch|major] --[no-]commit
package-path
:包含pubspec.yaml
文件的文件夹路径,该文件的版本将被升级。如果未提供此参数,默认为mainProject
,若未定义mainProject
,则默认为当前目录。- 必须指定
--minor
、--patch
或--major
之一,以控制如何升级版本。例如,当前版本为1.2.3
,选择--minor
将更新为1.3.0
。 - 如果提供了
--commit
参数,版本升级将自动提交。
修改API
以下是一个示例,展示如何使用修改API来更新 README.md
文件中的版本号:
// 添加命令并注册修改函数
runner..addCommand(BumpVersionCommand()..addModification(bumpChangelog));
// 修改函数实现
Future<void> bumpChangelog(DartPackage package, Version oldVersion, Version newVersion) async {
// 获取 README.md 文件
final readme = package.root.file('README.md');
// 读取文件内容
final content = readme.readAsStringSync();
// 定义正则表达式匹配版本号
final versionRegex = RegExp(r'my_package: \^(.+)');
// 替换版本号
final update = content.replaceFirst(versionRegex, 'my_package: ^${newVersion.canonicalizedVersion}');
// 写入更新后的内容
readme.writeAsStringSync(update);
}
许可证
Copyright 2023 phntm GmbH
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
完整示例Demo
假设你已经安装了 sidekick
并生成了自定义的 sidekick
CLI,以下是完整的使用步骤和示例代码。
-
安装插件
your_custom_sidekick_cli sidekick plugins install phntmxyz_bump_version_sidekick_plugin
-
创建一个简单的Flutter项目
flutter create my_project cd my_project
-
初始化
sidekick
sidekick init
-
升级版本
your_custom_sidekick_cli bump_version --minor --commit
-
查看
pubspec.yaml
文件 确认版本号已更新,例如从1.0.0
更新为1.1.0
。 -
使用修改API更新
README.md
在sidekick_cli
项目的lib/commands/bump_version_command.dart
文件中添加以下代码:import 'package:sidekick_core/sidekick_core.dart'; import 'package:phntmxyz_bump_version_sidekick_plugin/phntmxyz_bump_version_sidekick_plugin.dart'; class BumpVersionCommand extends Command { @override String get name => 'bump_version'; @override String get description => 'Bumps the version of the package'; BumpVersionCommand() { argParser.addFlag('commit', negatable: true, defaultsTo: false); argParser.addOption('level', allowed: ['major', 'minor', 'patch']); } @override Future<void> run() async { final level = argResults!['level'] as String; final commit = argResults!['commit'] as bool; runner..addCommand(BumpVersionCommand()..addModification(bumpChangelog)); await runner.run(['bump_version', '.', '--$level', if (commit) '--commit']); } } Future<void> bumpChangelog(DartPackage package, Version oldVersion, Version newVersion) async { final readme = package.root.file('README.md'); final content = readme.readAsStringSync(); final versionRegex = RegExp(r'my_package: \^(.+)'); final update = content.replaceFirst(versionRegex, 'my_package: ^${newVersion.canonicalizedVersion}'); readme.writeAsStringSync(update); }
-
运行命令
your_custom_sidekick_cli bump_version --minor --commit
更多关于Flutter版本管理辅助插件phntmxyz_bump_version_sidekick_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter版本管理辅助插件phntmxyz_bump_version_sidekick_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中使用phntmxyz_bump_version_sidekick_plugin
插件进行版本管理的示例代码和步骤。请注意,此插件的具体实现和API可能因版本而异,因此以下代码仅供参考,实际使用时请参考插件的官方文档。
步骤一:添加插件依赖
首先,你需要在pubspec.yaml
文件中添加phntmxyz_bump_version_sidekick_plugin
作为依赖。
dependencies:
flutter:
sdk: flutter
phntmxyz_bump_version_sidekick_plugin: ^x.y.z # 替换为实际的版本号
然后运行以下命令以安装插件:
flutter pub get
步骤二:配置插件
在Flutter项目的根目录下,可能需要一些额外的配置来确保插件正常工作。不过,对于大多数插件来说,添加依赖后就已经完成了大部分配置工作。phntmxyz_bump_version_sidekick_plugin
通常不需要额外的配置,但请确保你的项目结构符合插件的要求。
步骤三:使用插件进行版本管理
在你的Dart代码中,你可以通过以下方式使用phntmxyz_bump_version_sidekick_plugin
来管理和更新你的Flutter应用的版本号。
示例代码
import 'package:flutter/material.dart';
import 'package:phntmxyz_bump_version_sidekick_plugin/phntmxyz_bump_version_sidekick_plugin.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Flutter Version Management'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
ElevatedButton(
onPressed: () async {
// 假设你有一个方法来更新版本号
String currentVersion = await PhntmxyzBumpVersionSidekickPlugin.getCurrentVersion();
print("Current version: $currentVersion");
// 示例:将版本号的主要部分增加1(这只是一个示例,实际逻辑可能不同)
List<int> versionParts = currentVersion.split('.').map(int.parse).toList();
versionParts[0] += 1; // 增加主要版本号
String newVersion = versionParts.join('.');
// 更新版本号
await PhntmxyzBumpVersionSidekickPlugin.bumpVersion(newVersion);
print("Version updated to: $newVersion");
},
child: Text('Bump Version'),
),
],
),
),
),
);
}
}
注意事项
- 插件权限:确保你的项目配置中包含了插件可能需要的任何权限。
- 插件API:由于插件的API可能会随着版本更新而变化,因此请务必参考插件的官方文档和示例代码。
- 错误处理:在实际应用中,添加适当的错误处理逻辑,以处理可能出现的异常情况,如版本格式错误、文件写入失败等。
官方文档
为了获取最新和最准确的插件使用信息,请查阅phntmxyz_bump_version_sidekick_plugin
的官方文档(假设插件在pub.dev上有官方文档)。
希望这些信息对你有所帮助!