如何在 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 -version
和 javac -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 中不起作用,直到我使用了在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 中的 Maven 从本地 .m2 存储库中提取特定依赖项