如何在IntelliJ中更改Maven的Java版本?

我是Maven和IntelliJ IDEA的新手。

我有一个用Java 8编写的Maven项目。每当我尝试构build它(Maven Projects窗口 – >生命周期 – >编译 – >运行Maven构build),我得到一系列的编译错误:

[ERROR] path/to/file.java:[26,52] lambda expressions are not supported in -source 1.5 (use -source 8 or higher to enable lambda expressions) 

我应该在哪里更改-source参数的值? 我试着在Settings – > Compiler – > Java Compiler中添加它作为附加参数,但是我得到了相同的结果。

项目和模块的语言级别都设置为8.0。

我正在使用Maven 3.2.3和IntelliJ IDEA Community Edition 13.1.2。

或者更容易,把它添加到你的POM的properties部分:

 <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> 

概要:

  • 'maven-compiler-plugin' 总是工作! 这是我build议你使用。

要更改语言级别,请使用

 <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.4</source> <target>1.4</target> </configuration> </plugin> </plugins> </build> 

这些属性并不总是会改变Intellij的语言级别!

在下面的代码中,1.4是使用maven-compiler-plugin在pom中configuration的
(Intellij的jdk是1.8),项目的语言级别也相应地改为1.4:

在这里输入图像说明

这是双重检查! 这是一个例子。 大多数情况下,您不会将JDK的版本降级到1.4!

当然,如果你使用属性,假设你使用了pom 1.8,那么如果你在Intellij中使用了1.8 JDK(语言级别默认值是1.8或者手动修改了语言默认值),那么你就可以在1.8 但在mvn编译,属性将不会被看到,你将默认为Maven 1.5,编译将不会成功!

如下所示在pom.xml中更改源代码

 <build> <finalName>MQService</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> 

将下面的行添加到根(项目级)pom.xml使我解决了上述问题:(这两个选项都适用于我)

选项1:

 <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> 

选项2:

 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build> 

最初张贴在: IntelliJ IDEA 13使用Java 1.5,尽pipe设置为1.7

有两种方法可以做到这一点:

首先 – 添加属性

 <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> 

第二 – 添加插件

 <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin>