Maven中指定Java的編譯版本和原始檔編碼方式
阿新 • • 發佈:2019-01-01
Maven預設編譯版本是JDK1.5,在很多時候,發現有些程式碼報錯,又找不到原因,很有可能是沒有配置JDK版本。就如有一次我遇到的問題:定義全域性異常處理類繼承HandlerInterceptorAdapter時候,preHandle方法上面有@Override就一直報錯,點開HandlerInterceptorAdapter原始碼,明顯是有這個方法,後來發現JDK版本的問題,按如下方法設定好後,錯誤解決了。
一、第一種方式
在專案的pom.xml檔案中指定,但是此方法只對該專案有效,如下圖紅框所示,設定為JDK1.8。
程式碼如下:
<build>
<plugins >
<!-- 設定Tomcat7外掛 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<path>/</path>
<port >8086</port>
</configuration>
</plugin>
<!-- 設定JDK版本 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version >3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
二、第二種方式
在maven安裝目錄的conf資料夾下,修改settings.xml檔案,在profiles節點裡新增如下設定,如下圖所示,設定為JDK1.8,此方法對所有Maven專案有效。
程式碼如下:
<profile>
<id>JDK1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<encoding>UTF-8</encoding>
</properties>
</profile>