如何在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>