3 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個贊
檢查您maven-compiler-plugin的配置方式,它應(yīng)使用Java版本7或更高版本:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個贊
解決方案1-在pom.xml中設(shè)置這些屬性
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
解決方案2-配置Maven編譯器插件(始終在pom.xml中)
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
...
為什么會發(fā)生
出現(xiàn)問題是因?yàn)?/p>
目前,默認(rèn)源設(shè)置為1.5,默認(rèn)目標(biāo)設(shè)置為1.5,與運(yùn)行Maven的JDK無關(guān)。如果要更改這些默認(rèn)值,則應(yīng)按照設(shè)置Java編譯器的-source和-target中所述設(shè)置源和目標(biāo)。
Maven編譯器插件簡介(直到3.3版)
以及最新的Maven版本:
還要注意,當(dāng)前的默認(rèn)源設(shè)置為1.6,默認(rèn)目標(biāo)設(shè)置為1.6,與運(yùn)行Maven的JDK無關(guān)。強(qiáng)烈建議您按照設(shè)置Java編譯器的-source和-target中所述,通過設(shè)置source和target來更改這些默認(rèn)值。
Maven編譯器插件介紹
這就是為什么更改JDK對源代碼級別沒有影響的原因。因此,您有兩種方法可以告訴Maven使用哪個源級別。
要使用JDK版本?
如果您將目標(biāo)設(shè)置為1.7(如本例所示),請確保mvn命令實(shí)際上是使用jdk7(或更高版本)啟動的
IDE上的語言水平
通常,IDE使用maven pom.xml文件作為項(xiàng)目配置的源。在IDE中更改編譯器設(shè)置并不總是會影響maven構(gòu)建。因此,使項(xiàng)目始終可通過Maven進(jìn)行管理(以及與其他IDE互操作)的最佳方法是編輯pom.xml文件,并指示IDE與maven同步。

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個贊
您必須更改配置:
<project>
[...]
<build>
[...]
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
[...]
</build>
[...]
</project>
您應(yīng)該了解source/tagetJavaC中的選項(xiàng)與JDK 1.8 / 1.7等的用法之間的區(qū)別。
除此之外,您還應(yīng)該升級使用maven-compiler-plugin。
添加回答
舉報