前言
近期我修改了idea的maven配置,沒想到過去的項(xiàng)目結(jié)果報(bào)錯(cuò)了零抬。
摸索了半天后解決了自晰,特此記錄。
問題
Error:(119, 54) java: -source 1.5 中不支持 diamond 運(yùn)算符 (請(qǐng)使用 -source 7
如下圖
image.png
解決
問題的原因是: maven默認(rèn)的jdk是1.5扁远。版本較低,不支持java的一些新特性刻像。
例如這里的 diamond(鉆石)運(yùn)算符
Diamond Operator
類型判斷是一個(gè)人特殊的煩惱畅买,下面的代碼:
Map<String,List<String>> anagrams = new HashMap<String,List<String>>();
通過類型推斷后變成:
Map<String,List<String>> anagrams = new HashMap<>();
注:這個(gè)<>被叫做diamond(鉆石)運(yùn)算符,Java 7后這個(gè)運(yùn)算符從引用的聲明中推斷類型绎速。
知道問題原因則解決方法有2種選擇皮获。
- 全局修改焙蚓。修改maven配置纹冤。
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
- 單獨(dú)某個(gè)項(xiàng)目修改
在maven項(xiàng)目的pom中加入
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>