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

Posted

技术标签:

【中文标题】如何在 IntelliJ 中更改 Maven 的 Java 版本?【英文标题】:How to change Java version for Maven in IntelliJ? 【发布时间】:2014-11-11 08:08:45 【问题描述】:

我是 Maven 和 IntelliJ IDEA 的新手。

我有一个用 Java 8 编写的 Maven 项目。每当我尝试构建它时(Maven 项目窗口 -> 生命周期 -> 编译 -> 运行 Maven 构建),我都会收到一系列编译错误:

[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 文件中改过吗? 我的方法是直接在 IntelliJ 中这样设置它们:http://***.com/a/37648709/5154418 【参考方案1】:
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

【讨论】:

您的回答已被收录here。【参考方案2】:

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

【讨论】:

【参考方案3】:

您应该在 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 以使用此功能”的选项

【讨论】:

【参考方案4】:

我认为对这个问题的任何回应都没有解决这个问题 - “. . . in IntelliJ”。

以下是步骤:-

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

【讨论】:

棒极了。其他答案真的没有回答这个问题。这真的解决了我的问题! 这正是我所需要的!你先生救了我一个星期! 这应该是公认的答案:)【参考方案5】:

总结:

'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 在 pom 中配置了 1.4 (Intellij的jdk是1.8)项目的语言级别相应更改为1.4:

它被仔细检查了!这是一个例子。大多数时候你不会将JDK的版本降级到1.4!

当然如果你使用properties,假设你把pom 1.8,那么如果你在Intellij中使用1.8 JDK(语言级别默认为1.8或语言默认手动更改),那么你将能够1.8 中的代码但在 mvn 编译时,将看不到属性,您将默认为 Maven 1.5,编译不会成功!

【讨论】:

顺便说一句,我认为这造成了混乱,Eclipse 确实支持 maven.compiler.source 和 maven.compiler.target。 我更新了 pom 文件,但我也需要在项目设置中更改它,才能使其正常工作。 @gloomy.penguin:我刚刚从 Maven 快速入门原型创建了一个新的 Idea 项目。然后我查看了项目设置--->模块并阅读了 5.0 - 'enum' 关键字、通用、自动装箱等。然后我从 maven-compiler-plugin 添加了源(1.6)和目标(1.6),并做了同样,我在接口中阅读了 6-@Override 。我认为有一个混乱。我们不想更改默认 SDK。我们对此无能为力。 @gloomy:penguin:如果默认配置了JDK 1.5,并且您在pom中更改配置以询问1.6,那么即使您已添加,Idea也不会将默认SDK更改为1.6或1.7或1.8这些 jdk 到 Intellij。 pom中的配置要求Idea使用默认sdk更改源和目​​标版本!在图片中的示例中询问了 1.4,默认 jdk 为 1.8,当然可以。您必须设置一个与您在 pom 中配置的版本兼容的默认 jdk。 @gloomy-penguin:所以1.8会支持所有配置(但不是9!!!)。希望能帮助到你。我再说一遍,我刚刚检查过,它有效。请在项目设置--->模块中查看结果。【参考方案6】:

有两种方法:

先添加属性

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

【讨论】:

【参考方案7】:

将以下行添加到根(项目级别)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 uses Java 1.5 despite setting to 1.7

【讨论】:

【参考方案8】:

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

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

【讨论】:

这对我来说在 2017.2.5 中不起作用,直到我使用了 标签。 IntelliJ 设置都没有为我做任何事情。这个答案是经过数小时搜索后唯一解决的问题。谢谢! 工作正常,但不要忘记重新导入pom.xml文件,右键-->Maven-->重新导入 这个应该放在start.spring.io生成的pom中!我不知道他们为什么不这样做。他们放在那里的“1.8”是没用的。 确保平台设置中已经有所需的SDK/JDK。【参考方案9】:

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

【讨论】:

以上是关于如何在 IntelliJ 中更改 Maven 的 Java 版本?的主要内容,如果未能解决你的问题,请参考以下文章

IntelliJ IDEA 中更改 maven 镜像源

如何强制 IntelliJ 中的 Maven 从本地 .m2 存储库中提取特定依赖项

在 IntelliJ 中,如何调试 Maven 测试目标?

为啥刷新 Maven 存储库对于 IntelliJ 来说还不够?

Intellij 处理混合项目(maven+gradle)

如何在Intellij 14中获取Maven项目窗口更新:无法在Maven项目中看到右侧的“标签栏”