svu配置详解:从.svu.yml到高级选项的完整配置教程 svu配置详解从.svu.yml到高级选项的完整配置教程【免费下载链接】svusemantic version utility项目地址: https://gitcode.com/gh_mirrors/sv/svusvuSemantic Version Utility是一款强大的语义化版本管理工具能够帮助开发者轻松管理项目版本号。本文将详细介绍svu的配置方法从基础的.svu.yml文件到高级命令行选项助你快速掌握svu的配置技巧。一、svu配置文件基础1.1 配置文件的创建与位置svu使用YAML格式的配置文件默认名称为.svu.yml。你可以通过以下命令快速生成默认配置文件svu init生成的配置文件将保存在当前目录下你也可以通过--config参数指定自定义配置文件路径svu --config custom-config.yml next1.2 基础配置项解析让我们先来看一个基础的配置文件示例example.svu.yaml# svu configuration. # # https://github.com/caarlos0/svu verbose: false tag: pattern: prefix: v mode: all log: directory: - . metadata: always: false v0: false主要配置项说明verbose: 是否启用详细日志输出默认为falsetag.pattern: 用于匹配标签的正则表达式默认为空匹配所有标签tag.prefix: 标签前缀默认为v生成的标签将以v开头如v1.0.0tag.mode: 标签查找模式可选值为all所有分支或current当前分支默认为alllog.directory: 指定用于分析提交记录的目录默认为当前目录metadata: 版本元数据默认为空always: 如果没有提交触发版本变更是否自动增加补丁版本默认为falsev0: 如果当前版本仍为v0.x.x是否阻止主版本号递增默认为false二、单仓库与多仓库配置2.1 单仓库配置对于大多数单仓库项目使用基础配置即可满足需求。以下是一个典型的单仓库配置示例verbose: true tag: prefix: v mode: current log: directory: - . always: true这个配置将启用详细日志使用v作为标签前缀仅在当前分支查找标签分析当前目录的提交记录如果没有提交触发版本变更自动增加补丁版本2.2 多仓库Monorepo配置对于多仓库项目svu提供了专门的配置支持。以下是一个多仓库配置示例mono-repo-example.svu.yml# svu configuration. # # https://github.com/caarlos0/svu verbose: false tag: pattern: project-name/v* prefix: project-name/v #if you want the output to be without the prefix, set output to it defaults to tag.prefix #output: mode: all log: directory: - project-name metadata: always: false v0: false多仓库配置的关键区别在于tag.pattern: 使用更具体的模式来匹配特定项目的标签tag.prefix: 包含项目名称作为前缀确保不同项目的标签不会冲突log.directory: 指定项目所在的子目录确保只分析该项目的提交记录三、命令行选项与配置文件的优先级svu允许通过命令行选项覆盖配置文件中的设置。命令行选项的优先级高于配置文件。3.1 常用命令行选项以下是一些常用的命令行选项# 设置标签前缀 svu next --tag.prefix release- # 指定分析的目录 svu next --log.directory src # 启用JSON输出 svu current --json # 设置预发布版本 svu prerelease --prerelease beta # 设置版本元数据 svu next --metadata build1233.2 配置优先级顺序svu的配置优先级从高到低为命令行选项配置文件.svu.yml或自定义配置文件环境变量以SVU_为前缀如SVU_TAG_PREFIX默认值四、高级配置技巧4.1 自定义标签模式通过tag.pattern配置项你可以定义更复杂的标签匹配规则。例如只匹配特定格式的标签tag: pattern: v[0-9]\\.[0-9]\\.[0-9]-beta prefix: v这个配置将只匹配类似v1.2.3-beta的标签。4.2 条件版本递增使用always和v0配置项可以实现更精细的版本递增控制always: false v0: true这个配置将只有在有提交触发版本变更时才递增版本号如果当前版本是v0.x.x不会自动递增主版本号4.3 结合命令使用配置svu的不同命令可以结合配置文件使用实现不同的版本管理需求# 获取当前版本 svu current # 计算下一个版本 svu next # 手动递增主版本号 svu major # 手动递增次版本号 svu minor # 手动递增补丁版本号 svu patch # 创建预发布版本 svu prerelease五、配置示例与最佳实践5.1 开发环境配置verbose: true tag: prefix: dev-v mode: current log: directory: - . always: true metadata: dev5.2 生产环境配置verbose: false tag: prefix: v mode: all log: directory: - . always: false v0: false5.3 多项目配置verbose: false tag: pattern: project-a/v* prefix: project-a/v mode: all log: directory: - packages/project-a always: false v0: false六、常见问题解决6.1 配置文件不生效如果你的配置文件不生效请检查以下几点配置文件是否位于正确的位置默认是项目根目录配置文件名称是否正确默认是.svu.yml是否使用了命令行选项覆盖了配置文件中的设置配置文件的语法是否正确可以使用YAML验证工具检查6.2 版本号计算不正确如果svu计算的版本号不符合预期可以尝试启用详细日志verbose: true查看版本计算过程检查标签模式是否正确匹配了项目的标签确认log.directory是否包含了所有相关的提交记录检查是否有未提交的更改影响了版本计算通过本文的介绍你应该已经掌握了svu的配置方法。无论是简单的单仓库项目还是复杂的多仓库项目svu都能提供灵活而强大的版本管理支持。开始使用svu让你的版本管理变得更加简单高效要开始使用svu请先克隆仓库git clone https://gitcode.com/gh_mirrors/sv/svu然后按照本文介绍的方法配置你的.svu.yml文件开始享受语义化版本管理的便利吧【免费下载链接】svusemantic version utility项目地址: https://gitcode.com/gh_mirrors/sv/svu创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考