Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

New Versioning Scheme (Phân phiên bản mới) trong Java 9

Từ Java 9, versioning tuân thủ semantic versioning. Version number = chuỗi non-empty phân tách bởi dấu chấm. 3 phần chính: major, minor, security. Định nghĩa trong Runtime.Version class.

Định dạng version

$MAJOR.$MINOR.$SECURITY(.$otherpart)?

Ý nghĩa từng phần

PhầnTênKhi nào tăngVí dụ JDK 9
$MAJORMajor versionRelease lớn, thay đổi platform spec9
$MINORMinor versionBug fixes, enhancements standard API0
$SECURITYSecurity levelCritical security fixes. Không reset về 0 khi minor tăng4
$otherpartPatch versionJVM provider dùng cho non-security patches nhỏ-

Version string đầy đủ

$VNUM(-$PRE)?+$BUILD(-$OPT)?
$VNUM-$PRE(-$OPT)?
$VNUM(+-$OPT)?
  • $PRE: pre-release identifier (ea, beta...).
  • $BUILD: build number.
  • $OPT: optional info (timestamp...).

Ví dụ truy cập version info

public class VersionSchemeTest {
    public static void main(String args[]) {
        System.out.println(Runtime.version().toString()); // String representation
        System.out.println(Runtime.version().major());    // major version number
        System.out.println(Runtime.version().minor());    // minor version number
        System.out.println(Runtime.version().security()); // security version number
    }
}

Kết quả (JDK 9.0.4+11)

9.0.4+11
9
0
4

So sánh versioning cũ vs mới

Đặc điểmPre-Java 9 (1.8.0_XXX)Java 9+ (9.0.4)
Format1.major.minor_updatemajor.minor.security(+build)
MajorLuôn là 1Thực sự (9, 10, 11, 17, 21...)
MinorUpdate numberFeature/minor release
SecurityKhông tách biệtSecurity level riêng
Time-based releaseKhôngCó (6 tháng/lần từ JDK 10)

Versioning mới rõ ràng, dự đoán được, phù hợp release cadence 6 tháng của Oracle/OpenJDK.