Maven設(shè)置JDK版本的兩種方法實(shí)現(xiàn)
Maven 設(shè)置 JDK 版本是通過(guò) Apache Maven Compiler Plugin 插件實(shí)現(xiàn)的。它用于編譯項(xiàng)目的源代碼。
方法一
有時(shí)候你可能需要將某個(gè)項(xiàng)目編譯到與當(dāng)前使用的 JDK 版本不同的語(yǔ)言版本。你可以在編譯時(shí)為 javac 工具添加 -source 和 -target 選項(xiàng)來(lái)實(shí)現(xiàn)這樣的功能。也可以配置 Apache Maven Complier Plugin 插件以在編譯過(guò)程中提供這兩個(gè)選項(xiàng)。
例如,如果你想要使用 Java 8 的語(yǔ)言特性(-source 1.8)并且還希望編譯后的類與 JVM 1.8 兼容(-target 1.8),你可以在 pom.xml 文件中添加下面兩個(gè)屬性,這是插件參數(shù)的默認(rèn)屬性名稱:
<project> ... <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> ... </project>
或者直接配置插件(效果同上):
<project> ... <build> ... <plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> ... </plugins> ... </build> ... </project>
如果你沒(méi)有配置 source 和 target 屬性,默認(rèn)值是 1.8
source 選項(xiàng)指定了你的源代碼中能夠使用什么版本的語(yǔ)言特性,target 選項(xiàng)指定了編譯出來(lái)的 class 文件能夠在什么版本的 JVM 上運(yùn)行。一般來(lái)說(shuō)這兩個(gè)值設(shè)置成一樣即可。
Setting the -source and -target of the Java Compiler | Apache Maven
方法二(推薦)
從 JDK 9 開(kāi)始, javac 工具可以接受 --release 選項(xiàng),用于指定要針對(duì)哪個(gè) Java SE 版本構(gòu)建項(xiàng)目。例如,你安裝了 JDK 11 并且被 Maven 使用,但你想要針對(duì) Java 8 構(gòu)建項(xiàng)目。--release 選項(xiàng)確保代碼編譯遵循指定版本的語(yǔ)言規(guī)則,并且生成的類也針對(duì)該版本以及該版本的公共 API。這意味著,與 -source 和 -target 選項(xiàng)不同,編譯器將在你使用在先前 Java SE 版本中不存在的 API 時(shí)檢測(cè)并生成錯(cuò)誤。
自 Apache Maven Complier Plugin 插件的 3.6 版本起,可以通過(guò)設(shè)置 <maven.compiler.release> 屬性提供此選項(xiàng):
<project> ... <properties> <maven.compiler.release>8</maven.compiler.release> </properties> ... </project>
或者直接配置插件(效果同上):
<project> ... <build> ... <plugins> ... <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.12.1</version> <configuration> <release>8</release> </configuration> </plugin> ... </plugins> ... </build> ... </project>
Setting the --release of the Java Compiler | Apache Maven
到此這篇關(guān)于Maven設(shè)置JDK版本的兩種方法實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Maven設(shè)置JDK版本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MyBatis?多表聯(lián)合查詢及優(yōu)化方法
大家都知道Hibernate 是全自動(dòng)的數(shù)據(jù)庫(kù)持久層框架,它可以通過(guò)實(shí)體來(lái)映射數(shù)據(jù)庫(kù),通過(guò)設(shè)置一對(duì)多、多對(duì)一、一對(duì)一、多對(duì)多的關(guān)聯(lián)來(lái)實(shí)現(xiàn)聯(lián)合查詢,接下來(lái)通過(guò)本文給大家介紹MyBatis?多表聯(lián)合查詢及優(yōu)化,需要的朋友可以參考下2022-08-08
Java中Random簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
本文詳細(xì)給大家介紹了Java中Random簡(jiǎn)介相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-06-06
springboot 配置DRUID數(shù)據(jù)源的方法實(shí)例分析
這篇文章主要介紹了springboot 配置DRUID數(shù)據(jù)源的方法,結(jié)合實(shí)例形式分析了springboot 配置阿里DRUID數(shù)據(jù)源的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2019-12-12
基于Java制作一個(gè)簡(jiǎn)易的遠(yuǎn)控終端
這篇文章主要為大家詳細(xì)介紹了如何基于Java制作一個(gè)簡(jiǎn)易的遠(yuǎn)控終端,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的可以了解一下2023-04-04
解決SpringMVC獲取請(qǐng)求參數(shù)亂碼問(wèn)題
在使用SpringMVC和thymeleaf進(jìn)行請(qǐng)求參數(shù)處理時(shí),可能會(huì)遇到亂碼問(wèn)題,對(duì)于GET方法亂碼,可通過(guò)修改Tomcat的server.xml文件,添加URIEncoding="UTF-8"解決,而POST方法亂碼,則需在web.xml配置SpringMVC提供的過(guò)濾器2024-11-11
Java中的xxl-job調(diào)度器線程池工作機(jī)制
xxl-job通過(guò)快慢線程池分離短時(shí)與長(zhǎng)時(shí)任務(wù),動(dòng)態(tài)降級(jí)超時(shí)任務(wù)至慢池,結(jié)合異步觸發(fā)和資源隔離機(jī)制,提升高頻調(diào)度的性能與穩(wěn)定性,支撐高并發(fā)場(chǎng)景下的可靠任務(wù)執(zhí)行,本文給大家介紹Java: xxl-job調(diào)度器線程池工作機(jī)制,感興趣的朋友一起看看吧2025-07-07
Spring的Xml和JavaConfig 擴(kuò)展哪個(gè)好用
今天給大家介紹基于注解的Spring擴(kuò)展,Spring的Xml和JavaConfig 擴(kuò)展的配置方法,關(guān)于Spring的Xml和JavaConfig 擴(kuò)展你會(huì)選哪個(gè)呢,帶著這個(gè)問(wèn)題一起通過(guò)本文學(xué)習(xí)下吧2021-05-05

