最新的Java SE平台和JDK版本发布计划
最近發(fā)布的Java 9帶來了諸多重大變更,包括一個(gè)全新的版本發(fā)布計(jì)劃。該發(fā)布計(jì)劃基于JEP 223,主要用于Java平臺(tái)未來的版本發(fā)布。
\\不過在新版本計(jì)劃發(fā)布之后,Java首席架構(gòu)師Mark Reinhold立即提議再次修改當(dāng)前的版本計(jì)劃,使用更為嚴(yán)格的基于時(shí)間的發(fā)布模型。
\\基于JEP 223的版本計(jì)劃主要目標(biāo)如下:
\\- 版本號(hào)更易于理解\\t
- 與當(dāng)前業(yè)界的實(shí)際情況相吻合\\t
- 能夠適用于已有的包系統(tǒng)和平臺(tái)部署機(jī)制\\t
- 避免在版本號(hào)中使用兩種信息元素\\t
- 提供簡單的API用于解析、驗(yàn)證和比較版本號(hào)\
Java 9的發(fā)布說明對(duì)新的版本號(hào)格式進(jìn)行了描述:
\\\$MAJOR.$MINOR.$SECURITY.$PATCH\\- $MAJOR版本號(hào)隨著主要版本的發(fā)布而增加,發(fā)布版本中需要包含實(shí)現(xiàn)了Java SE平臺(tái)規(guī)范的重要新特性。主要版本中包含的新特性會(huì)提前進(jìn)行計(jì)劃和聲明。\\t
- $MINOR版本號(hào)隨著次要版本的發(fā)布而增加,比如缺陷修復(fù)、修訂標(biāo)準(zhǔn)API或者實(shí)現(xiàn)了平臺(tái)規(guī)范以外的特性。\\t
- $SECURITY版本號(hào)隨著安全更新的發(fā)布而增加,發(fā)布版本中需要包含關(guān)鍵的安全問題修復(fù)。\\t
- $PATCH版本號(hào)隨著包含了安全和高優(yōu)先級(jí)用戶問題修復(fù)的版本發(fā)布而增加。\
Reinhold提議使用一種基于時(shí)間的發(fā)布模型來代替該發(fā)布計(jì)劃。他說,Java SE平臺(tái)在過去幾年經(jīng)歷了非同尋常的變化。
\\基于特性發(fā)布的方式一般都是因?yàn)樾枰c特性的開發(fā)速度保持一致。Reinhold說,這種發(fā)布方式已經(jīng)過時(shí)了,Java現(xiàn)在需要與那些發(fā)展迅速的平臺(tái)展開競爭。
\\\受其他平臺(tái)和各種操作系統(tǒng)發(fā)行計(jì)劃的啟發(fā),我提議在Java 9之后使用一種嚴(yán)格的基于時(shí)間的發(fā)布模型,每六個(gè)月進(jìn)行一次特性發(fā)布,每季度進(jìn)行一次更新發(fā)布,每三年進(jìn)行一次LTS(長期支持)發(fā)布。
\\\該模型可以讓那些急于嘗鮮的開發(fā)者快速地采用最新的特性,而追求穩(wěn)定性的企業(yè)則可以選擇長期支持版本。他們可以提前進(jìn)行計(jì)劃,從一個(gè)長期支持版本遷移到下一個(gè)長期支持版本。
\\被提議的版本號(hào)格式如下:
\\\$YEAR.$MONTH\\也就是說,2018年3月份的版本將會(huì)是18.3,2018年9月份的版本為18.9。Reinhold在jdk-dev郵件組中為基于絕對(duì)時(shí)間的版本模型做出辯護(hù):
\\\- \\t
絕對(duì)時(shí)間恰好反應(yīng)出了發(fā)布日期,因?yàn)槭腔跁r(shí)間的,所以對(duì)JDK的開發(fā)者和用戶來說一目了然。如果因?yàn)橐~外“新增一個(gè)特性”導(dǎo)致發(fā)布延遲也不會(huì)引起混亂。
\\t\\t - \\t
根據(jù)絕對(duì)時(shí)間可以很容易地知道版本有多舊,所以用戶就可以知道自己使用的版本有多落后。而如果是相對(duì)時(shí)間,則需要知道時(shí)間單位是什么,以及版本號(hào)是基于什么時(shí)間計(jì)算得出的。
\\t\\t - \\t
絕對(duì)時(shí)間與發(fā)布節(jié)奏相互獨(dú)立。如果在若干年后,我們采用更快的發(fā)布節(jié)奏,比如三個(gè)月,就不需要修改絕對(duì)時(shí)間,但如果是相對(duì)時(shí)間則需要調(diào)整時(shí)間單位和起點(diǎn)。
\\t\
基于絕對(duì)時(shí)間的版本模型在社區(qū)中還不是很流行,Reinhold在郵件組中提出了修訂版本。修訂版與最初在JEP 223中出現(xiàn)的版本類似,只是做出了折中。
\\最新提議的版本號(hào)格式如下:
\\\$FEATURE.$INTERIM.$UPDATE.$EMERG\\- $FEATURE計(jì)數(shù)每六個(gè)月增加一次,不管發(fā)布的內(nèi)容是什么。\\t
- $INTERIM計(jì)數(shù)的增加并不包含特性發(fā)布,而是缺陷修復(fù)和增強(qiáng),不包含不兼容的變更。對(duì)于當(dāng)前的六個(gè)月周期發(fā)布模型來說,這個(gè)數(shù)字一般是零。\\t
- $UPDATE計(jì)數(shù)每三個(gè)月增加一次,包含兼容性的更新,如安全問題修復(fù)、回退問題修復(fù)以及新特性問題修復(fù)。\\t
- $EMERG計(jì)數(shù)只在需要發(fā)布緊急版本的時(shí)候增加。\
基本上這也是一種基于時(shí)間的發(fā)布計(jì)劃。$FEATURE每六個(gè)月增加一次,$UPDATE每三個(gè)月增加一次。
\\如果使用這種模型,下一個(gè)特性發(fā)布版本(之前叫作主要版本)仍然是Java 10,將于2018年3月份發(fā)布,而Java 11將于2018年9月份發(fā)布。該提議仍然處于討論之中,不過很快就會(huì)有一個(gè)結(jié)果。
\\查看英文原文:New Version Scheme for Java SE Platform and the JDK
\\總結(jié)
以上是生活随笔為你收集整理的最新的Java SE平台和JDK版本发布计划的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Visual Studio调试之断点技巧
- 下一篇: PIX 几个配置注意的地方