商城网站功能介绍,建设网站要求有哪些,拍卖网站制作,怎么把网站设置为信任网站注意#xff1a; 本文内容于 2024-11-27 22:25:05 创建#xff0c;可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容#xff0c;请访问原文地址#xff1a;语义版本控制。感谢您的关注与支持#xff01;
由于自己平时喜欢写点小玩意#xff0c;自然而…注意 本文内容于 2024-11-27 22:25:05 创建可能不会在此平台上进行更新。如果您希望查看最新版本或更多相关内容请访问原文地址语义版本控制。感谢您的关注与支持
由于自己平时喜欢写点小玩意自然而然的就碰到了许多志同道合的人。
大家都会将自己写的工具包发布到中央仓库我也不例外。在对比中发现我的版本命名太过随便因此特意学习一下常见的版本控制规范——语义化版本 2.0.0 | Semantic Versioning。
一句话概括版本格式为X.Y.Z
X: 主版本号。主版本号变更表示你做了不兼容的API修改Y: 次版本号。次版本号变更表示你做了向下兼容的功能性新增Z: 修订号。修订号变更表示你做了向下兼容的问题修正
重要规范如下 最新和更详细的说明还是自行查阅语义化版本 2.0.0 | Semantic Versioning 必须定义公共API必须采用X.Y.Z的格式且X、Y、Z为非负的整数。版本更新时要根据实际情况进行数值递增一旦版本发行后禁止修改版本内容主版本号为0(0.Y.Z)的程序处于开发初始阶段这样的公共API可能会存在变化先行版本号命名规范示例: 1.2.1-alpha.1、1.2.1-alpha.2在语义版本前面加v是一种git常见标签的命名方式。
语义版本的在线正则校验工具
用于支持按组名称提取的编程语言:Perl、PHP、R、Python、Go用于支持按编号提取的编程语言:JavaScript、Java、C#、Perl、PHP、R、Python、Go
下面给出Java的示例工具类
/*** Semantic Versioning** author a hrefhttps://meethigher.topchenchuancheng/a* see a hrefhttps://semver.org/Semantic Versioning 2.0.0 | Semantic Versioning/a* since 2024/11/27 23:07*/
public class SemVer {/*** 语义版本的正则格式*/private static final String SEMVER_PATTERN ^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\([0-9a-zA-Z-](?:\\.[0-9a-zA-Z-])*))?$;/*** param semVer 语义版本号* return true表示输入值符合语义版本的规范*/public static boolean isValidSemVer(String semVer) {if (semVer null || semVer.isEmpty()) {return false;}return semVer.matches(SEMVER_PATTERN);}}