百万架构师的第二课:设计模式:Spring 源码版本命名规则及下载安装
第二章--SpringWeb应用开发篇
二、Spring 源码版本命名规则及下载安装
2.1、Spring源码版本命名规则
(1) 首先看看某些常见软件的版本号:
- Linux Kernel:
0.0.1,1.0.0,2.6.32,3.0.18...,若用X.Y.Z表示,则偶数Y表示稳定版本,奇数Y表示开发版本 - Windows:
Windows 98,Windows 2000,Windows XP,Windows 7,Windows 10...,最大的特点是杂乱无章,毫无规律。 - SSH Client:
0.9.8。 - OpenStack:
2014.1.3,2015.1.1.dev8。
从上可以看出,不同的软件版本号风格各异,随着系统的规模越大,依赖的软件越多,如果这些软件没有遵循一套规范的命名风格,容易造成 Dependency Hell。所以当我们发布版本时,版本号的命名需要遵循某种规则,其中
Semantic Versioning 2.0.0定义了一套简单的规则及条件来约束版本号的配置和增长。本文根据Semantic Versionning 2.0.0和Semantic Versioning 3.0.0选择性的整理出版本号命名规则指南。
(2)版本号命名规则指南
- 版本号的格式为
X.Y.Z(又称Major.Minor.Patch),递增的规则为:- X 表示主版本号,当 API 的兼容性变化时,X 需递增。
- Y 表示次版本号,当增加功能时(不影响 API 的兼容性),Y 需递增。
- Z 表示修订号,当做 Bug 修复时(不影响 API 的兼容性),Z 需递增。
- 详细的规则如下:
- X, Y, Z 必须为非负整数,且不得包含前导零,必须按数值递增,如
1.9.0->1.10.0->1.11.0 0.Y.Z的版本号表明软件处于初始开发阶段,意味着 API 可能不稳定;1.0.0表明版本已有稳定的 API。- 当 API 的兼容性变化时,X 必须递增,Y 和 Z 同时设置为 0;当新增功能(不影响 API 的兼容性)或者 API 被标记为
Deprecated时,Y 必须递增,同时 Z 设置为 0;当进行 bug fix 时,Z 必须递增。 - 先行版本号(Pre-Release)意味该版本不稳定,可能存在兼容性问题,其格式为:
X.Y.Z.[a-c][正整数],如1.0.0.a1,1.0.0.b99,1.0.0.c1000。 - 开发版本号常用于
CI-CD,格式为X.Y.Z.dev[正整数],如1.0.1.dev4。 - 版本号的排序规则为依次比较主版本号、次版本号和修订号的数值,如
1.0.0<1.0.1<1.1.1<2.0.0;对于先行版本号和开发版本号,有:1.0.0.a100<1.0.0,2.1.0.dev3<2.1.0;当存在字母时,以 ASCII 的排序来比较,如1.0.0.a1<1.0.0.b1。
- X, Y, Z 必须为非负整数,且不得包含前导零,必须按数值递增,如
注意:版本一经发布,不得修改其内容,任何修改必须在新版本发布!以下是一些常用的修饰的词:
Snapshot版本代表不稳定、尚处于开发中的版本Alpha: 内部版本DEV: 开发版本(Development)Beta: 测试版Demo: 演示版Enhance: 增强版Free: 自由版Full Version: 完整版,即正式版Final:最终版,正式版LTS: 长期维护版本(Long Term Support),一般为18个月。Pro(professional):专业版Plus:加强版Retail:零售版Shareware共享版,虽然不会要求注册但是一般也有功能限制SR:修正版(Senior,中文解释为资深)Trial:试用版(一般有时间或者功能限制)Release: 发行版RC: 即将作为正式版发布(Release Candidat)Standard: 标准版Ultimate: 旗舰版Upgrade: 升级版
(3)Spring版本命名规则
Release版本则代表稳定的版本GA版本则代表广泛可用的稳定版 ( General Availability )M版本则代表里程碑版( M 是 Milestone 的意思)具有一些全新的功能或是具有里程碑意义的版本。
2.2、Spring5源码下载
- 第一步:https://github.com/spring-projects/spring-framework/archive/v5.0.2.RELEASE.zip
- 第二步:下载gradle http://downloads.gradle.org/distributions/gradle-1.6-bin.zip
- 第三步:解压,配置GRADLE_HOME 和Path
- 第四步:验证 gradle -v,环境变量是否正确
- 第五步:点击 gradle.bat 构建项目
微信公众号:不止极客
百万架构师的第二课:设计模式:Spring 源码版本命名规则及下载安装的更多相关文章
- 深入浅出!阿里P7架构师带你分析ArrayList集合源码,建议是先收藏再看!
ArrayList简介 ArrayList 是 Java 集合框架中比较常用的数据结构了.ArrayList是可以动态增长和缩减的索引序列,内部封装了一个动态再分配的Object[]数组 这里我们可以 ...
- Spring源码解析(一)开篇
前言 Spring源码继承结构比较复杂,看过以后经常会忘记.因此,记录一下源码分析的过程,方便以后回顾.本次分析的Spring源码版本为3.2.15. 另外,一提Spring就是IOC.DI等等,我们 ...
- Java之美[从菜鸟到高手演变]之Spring源码学习 - 环境搭建
准备工作 1.下载安装STS(Spring Tool Suite),在eclipse market里直接搜索.下载.安装.2.下载安装gradle, Spring源码使用gradle构建,下载后解压到 ...
- spring源码_下载以及转入eclipse (2016-11-08)
本例spring源码版本是4.3.0的, 所以jdk需要准备1.8的(不同版本源码要求的jdk不一样) 1.8版本myeclipse10无编译环境,只有运行环境,出现点问题,下载最新版本的Eclips ...
- 【原】Spring源码浅析系列-导入源码到Eclipse
用了Spring几年,平时也断断续续在项目里看过一些源码,大多都是比较模糊的,因为一旦从一个地方进去就找不到方向了,只能知道它大概是做了什么事能达到这个功能或者效果,至于细节一般没有太深入去研究.后来 ...
- Spring源码分析——源码分析环境搭建
1.在Windows上安装Gradle gradle工具类似于maven,用于项目的构建,此处主要用于构建spring源码,以便我们将spring源码导入eclipse. 开发环境 Java:JDK8 ...
- 【Spring源码解读】bean标签中的属性
说明 今天在阅读Spring源码的时候,发现在加载xml中的bean时,解析了很多标签,其中有常用的如:scope.autowire.lazy-init.init-method.destroy-met ...
- Spring 源码学习:day1
前言: 最近也不知道该忙些什么样的事情.便随便看看源码算了. 正文: (1) 在网上下载 Spring 的源码: 可以采用 git 方式下载 https://github.com/spring-pro ...
- spring 源码导入eclipse(sts)
一. 准备工作 1.下载安装sts(springsource推荐使用) 下载地址: http://www.springsource.org/downloads/sts-ggts 2.下载安装gradl ...
- spring-如何将spring源码成功导入Eclipse中
一.从 github上下载Spring源码到本机 二.利用 Gradle 编译 Spring 源码 环境: - Spring源码版本:spring-framework-4.3.x - Gradle版本 ...
随机推荐
- 用easyVget下载B站油管视频
B站油管等视频平台简直就是无所不有的宝库,动漫.番剧.纪录片.科普,更有海量的学习资源,可以极大地满足你的视觉欲和求知欲. 作为一只视频仓鼠,我热衷于下载自己感兴趣的视频到本地,不用担心视频被和谐.不 ...
- 轻松玩转pandas
文章目录 1.pandas简介 2.pandas应用 3.pandas安装 4.Pandas 数据结构 - Series 5.Pandas 数据结构 - DataFrame 6.Pandas CSV ...
- 工作中的技术总结 _Thymeleaf限制字符串的展示长度 _20210910
工作中的技术总结 _Thymeleaf限制字符串的展示长度 _20210910 比较简单就这一行代码 #strings.abbreviate 应该是调用了 thymeleaf 的内置函数 这一个方法的 ...
- IntelliJ IDEA 2024.1 安装激活 (亲测有效!)
第一步:下载 IDEA 安装包 访问 IDEA 官网,下载 IDEA 2024.1.4 版本的安装包,下载链接如下 : idea官方链接 也可以在这里点击下载idea下载idea 第二步: 安装 ID ...
- 在美国和以色列的技术支持下BP机可以爆炸,那么苹果手机是否也可以被远程引爆
要知道,这一切在技术上都是可以实现的. 由此可见,带电池的产品,最为稳妥的办法就是购买在中国组装的产品,否则其安全性是无法保证的.有人可能会说美国政府不会单独的通过这种方法去定向的杀害某个中国普通人, ...
- 使用Roslyn的源生成器生成DTO
前言 源生成器的好处很多, 通过在编译时生成代码,可以减少运行时的反射和动态代码生成,从而提高应用程序的性能, 有时候需要对程序AOT以及裁剪编译的dll也是需要用SG来处理的. 我们开发程序应该都绕 ...
- C#中的9个“黑魔法”
C#中的9个"黑魔法"与"骚操作" 我们知道C#是非常先进的语言,因为是它很有远见的"语法糖".这些"语法糖"有时过于好 ...
- 617. 合并二叉树 Golang实现
题目描述: 给你两棵二叉树: root1 和 root2 . 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会).你需要将这两棵树合并成一棵新二叉树.合并的规则是: ...
- hashcode和equals为何要同时重写
浅谈为何要重写 hashcode()与equals() 首先,这两个方法都来自于Object对象,根据API文档查看下原意.(1)public boolean equals(Objectobj),对于 ...
- golang之go-spew
github: https://github.com/davecgh/go-spew 我们在使用Golang(Go语言)开发的过程中,会通过经常通过调试的方式查找问题的原因,解决问题,尤其是当遇到一个 ...