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>