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


82

我是Maven和IntelliJ IDEA的新手。

我有一个用Java 8编写的Maven项目。每当尝试构建它时(Maven项目窗口->生命周期->编译->运行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参数的值?我尝试在设置->编译器-> Java编译器中将它作为附加参数添加,但是得到了相同的结果。

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

我正在使用Maven 3.2.3和IntelliJ IDEA社区版13.1.2。


您在pom文件中更改了吗?
2014年

我的方法是以这种方式直接在IntelliJ中设置它们:http
Yumi Koizumi

Answers:


117

或更简单地,将其添加到pom的properties部分:

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

在2017.2.5中,这对我不起作用,直到我使用了<build / configuration>标记。
Pawel Veselov

IntelliJ设置都没有为我做任何事情。经过数小时的搜索,唯一可以解决此问题的方法。谢谢!
蒂姆(Tim)

12
工作正常,但不要忘记重新导入pom.xml文件,右键单击->
Maven-

这应该放在start.spring.io生成的pom中!我不知道为什么他们不这样做。他们放在这里的“ <java.version> 1.8 </java.version>”是没有用的。
User007

1
确保平台设置中已经具有所需的SDK / JDK。
gkephorus

34

概要:

  • 'maven-compiler-plugin'总是可以的!这是我建议您使用的。

要更改语言级别,请使用

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

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

在下面的代码中,使用maven-compiler-plugin
(Intellij的jdk为1.8)在pom中配置了1.4 ,并将项目的语言级别相应地更改为1.4:

在此处输入图片说明

经过仔细检查!这是一个例子。大多数时候,您不会将JDK的版本降级到1.4!

当然,如果您使用属性,则假设您放入pom 1.8,然后在Intellij中使用1.8 JDK(语言级别默认值为1.8或手动更改了语言默认值),那么您将能够使用1.8进行编码但是在mvn编译时,将看不到属性,并且您将默认使用Maven 1.5,并且编译将不会成功!


顺便说一句,我认为这造成了混乱,Eclipse确实支持maven.compiler.source和maven.compiler.target。
Rudy Vissers

我更新了pom文件,但也需要在“项目设置”中更改此文件,以使其变为wokr。
gloomy.penguin

@ gloomy.penguin:我刚刚从Maven Quickstart原型创建了一个新的Idea项目。然后,我查看了项目设置--->模块,并阅读了5.0-'enum'关键字,泛型,自动装箱等。然后,我从maven-compiler-plugin中添加了源代码(1.6)和目标代码(1.6),并做了相同,我在界面中阅读了6- @ Override。我认为这很混乱。我们不想更改默认SDK。我们对此无能为力。
Rudy Vissers

@gloomy:penguin:如果默认配置了JDK 1.5,并且将pom中的配置更改为1.6,那么即使您已将这些jdks添加到Intellij,Idea也不会将默认SDK更改为1.6或1.7或1.8。pom中的配置要求Idea使用默认的sdk更改源版本和目标版本!在图片中的示例中,询问了1.4,默认的jdk为1.8,当然可以。您必须设置与您在pom中配置的版本兼容的默认jdk。
Rudy Vissers

@ gloomy-penguin:所以1.8将支持所有配置(但不支持9 !!!)。希望能帮助到你。我再说一遍,我刚刚检查过,它可以工作。然后请在“项目设置” --->“模块”中检查结果。
Rudy Vissers

7

如下所示在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>

5

我认为对该问题的任何答复都未解决问题-“ ...在IntelliJ中”。

步骤如下:-

  • 转到IntelliJ中的“首选项”(或快捷键⌘+,)
  • 构建,执行,部署> Maven>导入器-选择“ JDK for Importer ”下拉菜单,然后选择您喜欢的Java版本,单击Apply
  • 构建,执行,部署> Maven> Runner-选择“ JRE ”下拉列表,然后选择您喜欢的Java版本,单击Apply
  • 点击确定

4

将以下行添加到root(项目级别)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尽管设置为1.7仍使用Java 1.5


1

有两种方法可以执行此操作:

首次添加属性

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

0

您应该在pom.xml中添加以下代码以强制更改语言级别

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

现在,如果您要导入,那么intelliJ 2019.3 CE会为您执行此操作,然后在alt + enter处将出现一个选项,提示“将语言级别更改为8以使用此功能”


0

打开ubuntu终端,转到您的根目录并键入:

export JAVA_HOME = <path to jdk>

例如,它对我来说很好{在IntelliJ终端中执行相同操作}。

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

检查设定值类型 echo $JAVA_HOME

检查Maven版本类型: mvn -version

您可以通过键入以下命令找到JDK的所有路径,并可以设置JDK版本。

sudo update-alternatives --config java

还要检查你是否有java -versionjavac -version

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.