91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Gradle中的版本使用

科技綠洲 ? 來源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-09-25 15:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

今天帶大家了解一下 Gradle 中 sourceCompatiblity 和 targetCompatibility 的使用配置和區(qū)別。如果有對 Gradle 不太了解的朋友可以看我們之前的一些文章。

Java 中的版本處理

在了解 Gradle 中的 sourceCompatiblity 和 targetCompatibility 之前, 我們先來看看 Java 在編譯的時(shí)候,是怎么處理版本號(hào)的。

當(dāng)我們使用javac編譯一個(gè)Java程序時(shí),我們可以為版本處理提供以下兩個(gè)關(guān)閉版本的編譯選項(xiàng)。

  • -source 指的是我們的 Java 代碼的語言版本和編譯的 JDK 相匹配(例如,1.8代表JDK8)。我們所提供的版本值將限制源代碼中使用的語言特性,使其符合各自的Java版本。
  • -target 指的是控制生成的類文件的版本。也就是說我們提供的版本值將是我們的程序可以運(yùn)行的最低Java版本。

舉個(gè)例子

javac HelloWorld.java -source 1.6 -target 1.8

上面的命令的意思就是 程序的運(yùn)行環(huán)境需要支持JDK 1.8 也就是 Java 8, 而源碼中不能包含 Java 6 以上版本的語言特性,比如說 Lambda 表達(dá)式等等。

Gradle 中的版本使用

Gradle 中需要依賴Java插件,然后通過一個(gè)叫 java 的 task 來配置 sourceCompatibility 和 targetCompatibility 屬性,也就是 javac 中的 -source-target 編譯選項(xiàng)。

讓我們來設(shè)置build.gradle文件

plugins {
    id 'java'
}

group 'cn.javanorth'

java {
    sourceCompatibility = "1.6"
    targetCompatibility = "1.8"
}

通過一個(gè)例子來驗(yàn)證一下

我們創(chuàng)建一個(gè)叫 HelloWorld 的控制臺(tái)程序來進(jìn)行測試,創(chuàng)建一個(gè) HelloWorldApp 的 class。

public class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

好,我們使用 gradle build 命令來編譯下,我們可以看到生成了一個(gè) HelloWorldApp.class 的文件。

我們通過使用 javap 命令行工具來檢查這個(gè)class 的字節(jié)碼版本號(hào)。

javap -verbose HelloWorldApp.class

輸出結(jié)果如下:

public class cn.javanorth.helloworld.HelloWorldApp
  minor version: 0
  major version: 52
  flags: ACC_PUBLIC, ACC_SUPER

這里的主版本號(hào)是52,也就是 Java 8 class 文件的版本號(hào)。這就意味著 HelloWorldApp.class 只能運(yùn)行在 JDK 1.8 以上版本。

再來測試一下 sourceCompatibility, 我修改一下代碼,增加一個(gè) Java 6 沒有的特性,比如說 Lambda 表達(dá)式。

public class HelloWorldApp {

    public static void main(String[] args) {
        Runnable helloLambda = () - > {
            System.out.println("Hello World!");
        }
        helloLambda.run();
    }
}

我們嘗試使用 gradle 進(jìn)行編譯, 可以看到有一個(gè)編譯錯(cuò)誤。

error: lambda expressions are not supported in -source 1.6

-source選項(xiàng)相當(dāng)于Gradle 配置中 sourceCompatibility,可以讓我們的代碼在編譯過程中提前發(fā)現(xiàn)問題,如果我們不想引入更高的版本特性,使用這個(gè)選項(xiàng)可以確保我們不會(huì)誤用這些特性。比如說我們可能希望我們的應(yīng)用程序也能在Java 6 runtime 上運(yùn)行。

總結(jié)

在這篇文章中,我們了解如何使用 -source-target 編譯選項(xiàng)來處理我們的Java源代碼和目標(biāo)運(yùn)行時(shí)的版本。我們還可以通過Gradle 的 sourceCompatbility 和 targetCompatibility 配置使用這些編譯選項(xiàng)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    2989

    瀏覽量

    110737
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    672

    瀏覽量

    30380
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    680

    瀏覽量

    34208
  • gradle
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    900
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Gradle版本目錄功能的簡單應(yīng)用

    。 0. 概述 Gradle 版本目錄是 Gradle7 引入的新功能。使用 Gradle 版本
    的頭像 發(fā)表于 09-30 11:12 ?1855次閱讀

    Gradle構(gòu)建的多模塊Spring Boot項(xiàng)目

    0. 前言 相比起 Maven 的 XML 配置方式,Gradle 提供了一套簡明的 DSL 用于構(gòu)建Java 項(xiàng)目,使我們就像編寫程序一樣編寫項(xiàng)目構(gòu)建腳本。 本文將從無到有創(chuàng)建一個(gè)用 Gradle
    的頭像 發(fā)表于 09-25 14:46 ?3694次閱讀
    <b class='flag-5'>Gradle</b>構(gòu)建的多模塊Spring Boot項(xiàng)目

    gradle安裝與配置unity

    ://gradle.org/install/)并下載適用于你的操作系統(tǒng)的最新版本Gradle。根據(jù)你的操作系統(tǒng),選擇相應(yīng)的發(fā)行版并根據(jù)指示進(jìn)行
    的頭像 發(fā)表于 12-07 14:48 ?3186次閱讀

    Android Studio與Gradle深入

    ://jcenter.bintray.com/" }  下載不到特定的版本  Maven 和 Gradle 都會(huì)有一個(gè)緩存庫,默認(rèn)安裝的情況下,是在用戶根目錄下的 .m2 或者 .gradle 文件夾
    發(fā)表于 08-31 17:58

    Gradle for Android

    Gradle for Android
    發(fā)表于 07-16 15:50

    HarmonyOS初步探索04:使用DevEco Studio時(shí)設(shè)置Gradle倉庫代替

    /huawei-gradlebuild/”} } 依賴項(xiàng){ // gradle-intellij-plugin用于構(gòu)建JetBrains插件//請確保始終升級(jí)到最新版本// http
    發(fā)表于 12-15 14:26

    DevEco報(bào)錯(cuò)不能順利進(jìn)入gradle8.0怎么解決?

    報(bào)錯(cuò)內(nèi)容為:此版本中使用了已棄用的 Gradle 功能,使其與 Gradle 8.0 不兼容。翻譯一下,大概有些人說這個(gè)中外使用了Gradle的特性,但它應(yīng)該與
    發(fā)表于 04-21 11:15

    谷歌 Android Studio 和 Gradle 插件使用全新版本編號(hào)

    在 Canary 通道已正式發(fā)布。在此版本,調(diào)整了 Android Studio 和 Gradle 插件的版本編號(hào)方案。此項(xiàng)變更將 Gradle
    的頭像 發(fā)表于 12-11 10:49 ?1902次閱讀

    gradle和gradlew的區(qū)別?

    你會(huì)注意到輸出里打印了 Gradle版本,它對應(yīng)著你運(yùn)行的 gradle 命令在設(shè)備Gradle 安裝包
    的頭像 發(fā)表于 12-13 09:57 ?2054次閱讀

    Gradle入門知識(shí)之Gradle詳解

    大家回想一下自己第一次接觸`Gradle`是什么時(shí)候? 相信大家也都是和我一樣,在我們打開第一個(gè)AS項(xiàng)目的時(shí)候, 發(fā)現(xiàn)有很多帶gradle字樣的文件:`setting.gradle, build.
    的頭像 發(fā)表于 03-30 10:47 ?2818次閱讀
    <b class='flag-5'>Gradle</b>入門知識(shí)之<b class='flag-5'>Gradle</b>詳解

    Gradle入門知識(shí)之Gradle詳解(下)

    大家回想一下自己第一次接觸`Gradle`是什么時(shí)候? 相信大家也都是和我一樣,在我們打開第一個(gè)AS項(xiàng)目的時(shí)候, 發(fā)現(xiàn)有很多帶gradle字樣的文件:`setting.gradle, build.
    的頭像 發(fā)表于 03-30 10:51 ?1138次閱讀
    <b class='flag-5'>Gradle</b>入門知識(shí)之<b class='flag-5'>Gradle</b>詳解(下)

    Gradle入門知識(shí)之Gradle語法1

    很多開發(fā)喜歡把`Gradle`簡單定義為一種構(gòu)建工具,和`ant,maven`等作用類似, 誠然Gradle確實(shí)是用來做構(gòu)建,但是如果簡單得把Gradle拿來做構(gòu)建,就太小看Gradle
    的頭像 發(fā)表于 03-30 10:54 ?1293次閱讀
    <b class='flag-5'>Gradle</b>入門知識(shí)之<b class='flag-5'>Gradle</b>語法1

    Gradle入門知識(shí)之Gradle語法2

    很多開發(fā)喜歡把`Gradle`簡單定義為一種構(gòu)建工具,和`ant,maven`等作用類似, 誠然Gradle確實(shí)是用來做構(gòu)建,但是如果簡單得把Gradle拿來做構(gòu)建,就太小看Gradle
    的頭像 發(fā)表于 03-30 10:54 ?936次閱讀

    Gradle Plugin和AGP的區(qū)別1

    Gradle Plugin`和`AGP`的區(qū)別? `Gradle Plugin`是`Gradle`構(gòu)建過程中使用的插件的總稱,而`Android Gradle Plugin`是這
    的頭像 發(fā)表于 03-30 11:48 ?1516次閱讀
    <b class='flag-5'>Gradle</b> Plugin和AGP的區(qū)別1

    Gradle Plugin和AGP的區(qū)別3

    Gradle Plugin`和`AGP`的區(qū)別? `Gradle Plugin`是`Gradle`構(gòu)建過程中使用的插件的總稱,而`Android Gradle Plugin`是這
    的頭像 發(fā)表于 03-30 11:50 ?1511次閱讀
    主站蜘蛛池模板: 久久久久青草 | 中文字幕在线色 | 天天看天天射天天碰 | 欧美成人全部费免网站 | 91视频看看 | 免费在线视频观看 | 欧洲性开放大片免费观看视频 | 午夜插| 欧美一级视频在线观看欧美 | xxx日本69| 新天堂网 | 美女被免费网站视频九色 | 午夜在线观看福利 | 么公的好大好硬好深好爽视频 | 看a网站| 欧美黄色免费 | 国产h在线播放 | 毛片三级在线观看 | 永久免费品色堂 | 毛片不卡一区二区三区 | 色中色在线视频 | 国产精品资源网站在线观看 | 亚洲成人三级电影 | 色婷婷婷婷| h视频免费| 午夜在线 | 免费看片你懂的 | 欧美精品成人a多人在线观看 | 久青草国产手机在线观 | 高清精品女厕在线观看 | aaaa级日本片免费视频 | 午夜久久网 | www一级毛片 | 失禁h啪肉尿出来高h | www.亚洲日本| 久草在线免费资源站 | 中年艳妇乱小玩 | 天堂网. www在线资源 | 免费一级片在线观看 | 国产精品第九页 | 国产黄色在线免费观看 |