简介

在使用jar包的时候经常看到一些特殊版本,例如这次log4j的JNDI注入漏洞,发布的版本log4j-2.15.0-rc2

这个rc2代表什么呢?

软件版本

Alpha(α)

预览版,也叫内部测试版,一般不向外部发布,会有很多Bug,主要是内部人员用于测试。

很多开源软件的大版本也会释放出来,让大家一起来找茬。

例如:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.0-alpha1</version>
</dependency>

Beta(β)

测试版,也叫公开测试版,在 Alpha版之后推出。我们基本不会不会看到Alpha版本,但是很多开源软件会在其官网提供Beta版本。

同样是log4j-api的2.0版本释放了9个Beta版本:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.0-beta9</version>
</dependency>

RC(Release Candidate)

最终测试版本,最终产品的候选版本,从名字也能看出来,是Release的候选者,如果没有发现新的Bug则发布成为正式版本。

多数开源软件会推出两个RC版本,最后的 RC2 则成为正式版本,例如,log4j-2.15.0-rc2最后就变成了正式的log4j-2.15.0版本。

当然rc不一定都对只有2个版本,例如:

<dependency>
    <groupId>org.gradle</groupId>
    <artifactId>gradle-core</artifactId>
    <version>7.3-rc-5</version>
    <scope>provided</scope>
</dependency>

Stable

稳定版,来自预览版本释出使用与改善而修正完成。

如Nginx就会有:

  1. Mainline version:Mainline 是 Nginx 目前正在做的版本
  2. Stable version:最新稳定版,生产环境上建议使用的版本
  3. Legacy versions:遗留的老版本的稳定版

NGINX下载

GA(General Availability)

正式发布的版本,如:

<dependency>
    <groupId>org.javassist</groupId>
    <artifactId>javassist</artifactId>
    <version>3.28.0-GA</version>
</dependency>

版本号说明

规范的项目的软件版本号分3段:主版本号.次版本号.修订号(MAJOR.MINOR.PATCH)

  1. 主版本号(major):做了不兼容的 API 修改,
  2. 次版本号(minor):做了向下兼容的功能性新增
  3. 修订号(patch):做了向下兼容的问题修正,只要有修改就增加

版本号规范

版本号规范中文

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐