最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Maven編譯報(bào)錯(cuò):未與 -source 8 一起設(shè)置引導(dǎo)類路徑的完美解決方案

 更新時(shí)間:2025年10月14日 09:45:40   作者:一勺菠蘿丶  
這篇文章主要為大家詳細(xì)介紹了Maven編譯報(bào)錯(cuò):未與 -source 8 一起設(shè)置引導(dǎo)類路徑的相關(guān)解決方案,文中的示例代碼講解詳細(xì),有需要的小伙伴可以了解下

一、問題背景

在用 高版本 JDK(如 JDK 17 或 21) 編譯一些老項(xiàng)目(比如 芋道 Yudao 項(xiàng)目)時(shí),很多人會(huì)在 Maven 編譯日志中看到這樣的警告或報(bào)錯(cuò):

[WARNING] 未與 -source 8 一起設(shè)置引導(dǎo)類路徑

或者(在某些終端環(huán)境下亂碼):

[WARNING] δ?? -source 8 ?????????????·??

項(xiàng)目雖然能編譯通過,但終端里一堆奇怪的亂碼和警告,非常影響體驗(yàn)。

二、問題原因(用最簡單的話解釋)

其實(shí),這不是你項(xiàng)目代碼的問題,而是 JDK 版本機(jī)制變化 導(dǎo)致的。

JDK 9 開始javac 編譯器增加了一個(gè)新的參數(shù):

--release 8

它的意思是:

“我雖然用的是 JDK 17(或 21)編譯,但請幫我生成一個(gè)兼容 Java 8 的程序。”

而舊的參數(shù):

-source 1.8
-target 1.8

只告訴編譯器“我要用 Java 8 語法和目標(biāo)”,但不會(huì)自動(dòng)加載 Java 8 的類庫(比如 rt.jar)。

所以 JDK 17 編譯時(shí)就會(huì)警告你:

“你設(shè)置了 -source 8,但沒告訴我用哪個(gè)版本的類庫。”

三、我的項(xiàng)目場景(以芋道項(xiàng)目為例)

我在編譯芋道(Yudao)項(xiàng)目時(shí)遇到了這個(gè)問題。

pom.xml 里本來就寫了:

<properties>
    <java.version>1.8</java.version>
</properties>

并且 maven-compiler-plugin 中也配置了:

<source>${java.version}</source>
<target>${java.version}</target>

但依然報(bào)警告。

四、最終解決方案(實(shí)測可行)

我在 pom.xmlmaven-compiler-plugin 配置中,手動(dòng)補(bǔ)上這三行

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${maven-compiler-plugin.version}</version>
    <configuration>
        <!-- ? 補(bǔ)上這三行 -->
        <source>${java.version}</source>
        <target>${java.version}</target>
        <release>8</release>
    </configuration>
</plugin>

保存后重新執(zhí)行:

mvn clean package -Dmaven.test.skip=true

警告完全消失 ,整個(gè)項(xiàng)目編譯干干凈凈!

五、為什么加上<release>就能解決

因?yàn)椋?/p>

  • -source-target 只是告訴編譯器語法和目標(biāo)版本;
  • --release 則會(huì)自動(dòng)選擇正確的 標(biāo)準(zhǔn)類庫(Java 8 的 rt.jar);
  • 所以 JDK 17/21 編譯器知道“我要用 8 的語法 + 8 的類庫”,不再報(bào)警。

簡單理解:

加上 <release>,就相當(dāng)于告訴編譯器:“我明確要編譯成 Java 8 環(huán)境的程序,別亂猜。”

六、總結(jié)一下

項(xiàng)目環(huán)境問題表現(xiàn)解決方式
使用 JDK 17 / 21 編譯舊項(xiàng)目出現(xiàn) 未與 -source 8 一起設(shè)置引導(dǎo)類路徑 警告在 maven-compiler-plugin 中添加 <release>8</release>
原因JDK 9+ 之后 javac 要求明確指定類庫版本使用 <release> 告訴編譯器目標(biāo)類庫
推薦做法在 pom.xml 添加三行配置適用于所有 JDK 版本,最穩(wěn)定

七、最終可直接復(fù)制的完整示例

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <configuration>
        <!-- ? 解決警告的關(guān)鍵 -->
        <source>${java.version}</source>
        <target>${java.version}</target>
        <release>8</release>

        <!-- 可選:注解處理器配置 -->
        <annotationProcessorPaths>
            <path>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.32</version>
            </path>
        </annotationProcessorPaths>
    </configuration>
</plugin>

八、總結(jié)一句話

當(dāng)你在 JDK 17/21 編譯 Java 8 項(xiàng)目(比如芋道)時(shí),如果看到「未與 -source 8 一起設(shè)置引導(dǎo)類路徑」的警告,只需在 maven-compiler-plugin 里加上 <release>8</release>,一切問題立刻消失!

到此這篇關(guān)于Maven編譯報(bào)錯(cuò):未與 -source 8 一起設(shè)置引導(dǎo)類路徑的完美解決方案的文章就介紹到這了,更多相關(guān)Maven編譯報(bào)錯(cuò)解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Maven版本沖突的三種解決方法

    Maven版本沖突的三種解決方法

    在Maven項(xiàng)目中,依賴傳遞可能導(dǎo)致Jar包版本沖突,常見的解決策略包括依賴排除、版本鎖定和使用maven-shade-plugin插件,本文就來介紹一下這三種解決方法,感興趣的可以了解一下
    2024-10-10
  • JAVA基礎(chǔ)之?dāng)?shù)組和集合區(qū)別對比分析

    JAVA基礎(chǔ)之?dāng)?shù)組和集合區(qū)別對比分析

    文章主要介紹了Java中數(shù)組和集合的基本概念、使用方法以及它們之間的區(qū)別,文章還探討了不可變集合的創(chuàng)建方式及其線程安全和不可篡改的優(yōu)勢,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • Java中漢字轉(zhuǎn)拼音pinyin4j用法實(shí)例分析

    Java中漢字轉(zhuǎn)拼音pinyin4j用法實(shí)例分析

    這篇文章主要介紹了Java中漢字轉(zhuǎn)拼音pinyin4j用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了pinyin4j庫的具體使用技巧,需要的朋友可以參考下
    2015-12-12
  • Java實(shí)現(xiàn)文件讀取和寫入過程解析

    Java實(shí)現(xiàn)文件讀取和寫入過程解析

    這篇文章主要介紹了Java實(shí)現(xiàn)文件讀取和寫入過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值。,需要的朋友可以參考下
    2019-10-10
  • 詳解MybatisPlus3.4版本之后分頁插件的使用

    詳解MybatisPlus3.4版本之后分頁插件的使用

    從Mybatis Plus 3.4.0版本開始,不再使用舊版本的PaginationInterceptor ,而是使用MybatisPlusInterceptor。本文就詳細(xì)的介紹一下兩者的區(qū)別,感興趣的可以了解一下
    2021-11-11
  • 使用FileChannel實(shí)現(xiàn)文件的復(fù)制和移動(dòng)方式

    使用FileChannel實(shí)現(xiàn)文件的復(fù)制和移動(dòng)方式

    這篇文章主要介紹了使用FileChannel實(shí)現(xiàn)文件的復(fù)制和移動(dòng)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • ArrayList底層操作機(jī)制源碼解析

    ArrayList底層操作機(jī)制源碼解析

    這篇文章主要介紹了ArrayList底層操作機(jī)制源碼解析,當(dāng)創(chuàng)建ArrayList對象時(shí),如果使用的是無參構(gòu)造器,則初始elementData容量為0,第1次添加,則擴(kuò)容elementData為10,如需要再次擴(kuò)容,則擴(kuò)容elementData為1.5倍,需要的朋友可以參考下
    2023-09-09
  • Java 在PDF中添加頁面跳轉(zhuǎn)按鈕功能(代碼演示)

    Java 在PDF中添加頁面跳轉(zhuǎn)按鈕功能(代碼演示)

    這篇文章主要介紹了Java 在PDF中添加頁面跳轉(zhuǎn)按鈕功能,本文給大家提供了多種功能的按鈕,需要的朋友可以參考下
    2019-11-11
  • java基礎(chǔ)-給出一個(gè)隨機(jī)字符串,判斷有多少字母?多少數(shù)字?

    java基礎(chǔ)-給出一個(gè)隨機(jī)字符串,判斷有多少字母?多少數(shù)字?

    這篇文章主要介紹了java基礎(chǔ)-給出一個(gè)隨機(jī)字符串,判斷有多少字母?多少數(shù)字?文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Java MAVEN 工程pom配置報(bào)錯(cuò)解決方案

    Java MAVEN 工程pom配置報(bào)錯(cuò)解決方案

    這篇文章主要介紹了Java MAVEN 工程pom配置報(bào)錯(cuò)解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評論

尼勒克县| 上林县| 肃北| 远安县| 明溪县| 禹城市| 剑河县| 宁晋县| 响水县| 浠水县| 永泰县| 封开县| 井研县| 安仁县| 义马市| 奉化市| 宜兴市| 遵化市| 峨眉山市| 凤山县| 章丘市| 友谊县| 阿克苏市| 曲水县| 红原县| 淳安县| 新营市| 永寿县| 炎陵县| 西城区| 额敏县| 全南县| 嘉峪关市| 宁津县| 元江| 灵宝市| 陇南市| 富裕县| 三台县| 巴里| 安义县|