Maven設(shè)置JDK版本的兩種方法實現(xiàn)
Maven 設(shè)置 JDK 版本是通過 Apache Maven Compiler Plugin 插件實現(xiàn)的。它用于編譯項目的源代碼。
方法一
有時候你可能需要將某個項目編譯到與當(dāng)前使用的 JDK 版本不同的語言版本。你可以在編譯時為 javac 工具添加 -source 和 -target 選項來實現(xiàn)這樣的功能。也可以配置 Apache Maven Complier Plugin 插件以在編譯過程中提供這兩個選項。
例如,如果你想要使用 Java 8 的語言特性(-source 1.8)并且還希望編譯后的類與 JVM 1.8 兼容(-target 1.8),你可以在 pom.xml 文件中添加下面兩個屬性,這是插件參數(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>
如果你沒有配置 source 和 target 屬性,默認(rèn)值是 1.8
source 選項指定了你的源代碼中能夠使用什么版本的語言特性,target 選項指定了編譯出來的 class 文件能夠在什么版本的 JVM 上運行。一般來說這兩個值設(shè)置成一樣即可。
Setting the -source and -target of the Java Compiler | Apache Maven
方法二(推薦)
從 JDK 9 開始, javac 工具可以接受 --release 選項,用于指定要針對哪個 Java SE 版本構(gòu)建項目。例如,你安裝了 JDK 11 并且被 Maven 使用,但你想要針對 Java 8 構(gòu)建項目。--release 選項確保代碼編譯遵循指定版本的語言規(guī)則,并且生成的類也針對該版本以及該版本的公共 API。這意味著,與 -source 和 -target 選項不同,編譯器將在你使用在先前 Java SE 版本中不存在的 API 時檢測并生成錯誤。
自 Apache Maven Complier Plugin 插件的 3.6 版本起,可以通過設(shè)置 <maven.compiler.release> 屬性提供此選項:
<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版本的兩種方法實現(xiàn)的文章就介紹到這了,更多相關(guān)Maven設(shè)置JDK版本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解Java的JDBC API的存儲過程與SQL轉(zhuǎn)義語法的使用
這篇文章主要介紹了詳解Java的JDBC API的存儲過程與SQL轉(zhuǎn)義語法的使用,JDBC是Java用于連接使用各種數(shù)據(jù)庫的API,需要的朋友可以參考下2015-12-12
java高并發(fā)ScheduledThreadPoolExecutor與Timer區(qū)別
這篇文章主要為大家介紹了java高并發(fā)ScheduledThreadPoolExecutor與Timer區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
SpringBoot?實現(xiàn)動態(tài)添加定時任務(wù)功能
這篇文章主要介紹了SpringBoot?動態(tài)添加定時任務(wù),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-02-02
mybatis抽取基類BaseMapper增刪改查的實現(xiàn)
目前項目當(dāng)中使用mapper.xml文件方式對數(shù)據(jù)庫進(jìn)行操作,但是每個里邊都有增/刪/改/查,為了方便開發(fā),把這些公共的代碼提取出來,不用當(dāng)做基類,不用每個Mapper文件都寫了,本文就詳細(xì)的介紹一下實現(xiàn)方法2021-09-09

