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

我对 Maven 和 IntelliJ IDEA 都是新手。

我有一个用 Java8编写的 Maven 项目。无论何时我尝试构建它(Maven Projects window-> Lificycle-> edit-> Run 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。

86122 次浏览

Change the source as shown below in 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>

Or easier, add this to your pom's properties section:

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

Summary:

  • 'maven-compiler-plugin' ALWAYS work! It is what I suggest you to use.

To change the language level, make usage of

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

The properties do not always change the language level of Intellij!

In the code below, 1.4 was configured in the pom using maven-compiler-plugin
(the jdk of Intellij is 1.8) and the language level of the project was changed accordingly to 1.4:

enter image description here

It was double-checked! It is an example. Most of the time you will not downgrade the version of the JDK to 1.4!

Of course if you use properties, let's say you put in the pom 1.8, then if you use a 1.8 JDK in Intellij(the language level default is 1.8 or the language default was changed manually), then you will be able to code in 1.8 BUT at the mvn compile, the properties will NOT be seen and you will default to Maven 1.5 and the compilation will NOT succeed !

Adding below lines to root(project level) pom.xml worked me to resolve above issue: (both of the options worked for me)

Option 1:

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

Option 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>

originally posted at: IntelliJ IDEA 13 uses Java 1.5 despite setting to 1.7

There are two ways of doing this :

First- Add Properties

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

second- Add Plugin

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

I don't think any response to the question addressed the concern - ". . . in IntelliJ".

Here are the steps: -

  • Go to Preference(or Settings) in IntelliJ ( or Shortcut on Mac ⌘ + ,)
  • Build, Execution, Deployment > Build Tools > Maven > Importing - select the "JDK for Importer" dropdown then select your preferred java version, Click Apply
  • Build, Execution, Deployment > Maven > Runner - select the "JRE" dropdown then select your preferred java version, Click Apply
  • Click OK

You should add below code in your pom.xml to force the language level to change

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

now intelliJ 2019.3 CE does this for you if you go to import then alt+enter where you will get an option saying "change language level to 8 to use this functionality"

open the ubuntu terminal goto your root directory and type:

export JAVA_HOME = <path to jdk>

for example, it works fine for me {do the same in IntelliJ terminal}.

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64

to check the set value type echo $JAVA_HOME

to check the maven version type: mvn -version

you can find all path of JDKs by typing this command, and you can set JDK version.

sudo update-alternatives --config java

also check you have same java -version and javac -version.

Here are the steps for intellij version# 2021.2 Ultimate Edition: -


Go to Settings in IntelliJ
Build, Execution, Deployment > Build Tools > Maven > importing > "JDK for Importer" then select your preferred java version, Click Apply
Build, Execution, Deployment > Build Tools > Maven > Runner > For "JRE" option select your preferred java version,
Click Apply
Click OK

It may sometimes happen that after configuring maven in Intellij and changing as following it does not work by command build, so build it by Intellij maven tool.

Setting > Maven > Importer - select the `JDK`
Setting > Maven > Runner - select the `JRE`

After that, try to build by Intellij maven tool instead of Intellij console.