如何解决IntelliJ 在 Java11 SpringBoot 项目上设置了错误的语言级别
我正在使用 Java 11 开发一个使用 Maven 构建的 SpringBoot 应用程序。
IntelliJ 导入项目没有任何问题,但它向我显示了一个错误,例如使用。 Map.of("A","B")
方法我需要提高语言水平。显然 IntelliJ 没有正确检测到我正在使用的 Java 版本。
在我的 pom.xml 中,我使用 spring-boot-maven-plugin 来构建
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
SO 上的其他答案(例如 IDEA: javac: source release 1.7 requires target release 1.7)告诉我为 maven-build-plugin 设置“发布”(或源/目标)属性,但这与 spring-boot-maven-不兼容-插件(即导致依赖关系等问题)。
如何让 IntelliJ 自动识别并将 Java 语言级别设置为 11,而无需在每次 pom.xml 重新导入后手动更改?
解决方法
默认情况下,IntelliJ(截至 2020.3)如果没有另外指定,则假定 Java 语言级别为 8。
spring-boot-maven-plugin 尊重
<properties>
<java.version>11</java.version>
</properties>
相应地设置和调整 maven-compiler-plugin 属性(发布、源代码、目标),IntelliJ 尊重这些属性,用于在项目上设置 Java 语言级别。
只需将此属性添加到 pom.xml 并重新加载项目(不是刷新,这对我不起作用)。
另请参阅 How to specify Java 11 version in Spring/Spring Boot pom.xml? 以获取有关其幕后工作原理的更详细说明。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。