【问题标题】:How to change Java version for Maven in IntelliJ?如何在 IntelliJ 中更改 Maven 的 Java 版本?
【发布时间】: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。

【问题讨论】:

标签: java maven intellij-idea


【解决方案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>
          

          【讨论】:

            最近更新 更多