我正在开发一个使用Java11的SpringBoot应用程序,它是用Maven语言构建的。
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设置"release“(或源/目标)属性,但这与spring-boot-maven-plugin (即,导致依赖关系等问题)。
如何让IntelliJ自动识别Java语言级别并将其设置为11,而不必在每次pom.xml重新导入后手动更改它?
发布于 2021-01-22 01:09:06
默认情况下,如果没有指定,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?,了解有关此功能在幕后如何工作的更详细说明。
https://stackoverflow.com/questions/65832370
复制相似问题