我正在 intellij-idea 中开发一个 Maven 项目,出于某种原因决定将我的 java 语言级别从 8 更改为 15,现在它无法识别我导入的 jakarta 包。
我尝试使用本地历史记录来恢复代码,但它也不起作用。我尝试在 pom.xml 中添加依赖项,但 jakarta 版本错误。我不知道如何获得正确的版本,因为以前不存在依赖项。我该怎么办?
jakarta.*
包导入没有影响。你有一个不同的问题......
您的问题是在 POM 的
10.0.0
元素中指定 Jakarta Servlet API 的版本 dependency
。
👉🏽 没有 Servlet 10 API。
如何知道有哪些版本可用?
当前版本是6.0,很快就会是6.1。 Servlet 4.0 和 Servlet 5.0 也很常用。
因此,请在 Maven POM 中使用其中之一:
<!-- https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.1.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>6.0.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>5.0.0</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api -->
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>4.0.4</version>
<scope>provided</scope>
</dependency>
各种应用服务器的某些版本支持特定版本的 Servlet 规范。选择适合您选择的应用程序服务器以及适合您的应用程序所需功能的 Servlet 版本。
因此,来自 Maven 的错误消息指出无法找到依赖项 — 您指定的依赖项不存在。
您可能会感到困惑,因为 Jakarta Servlet 6.0 是 Jakarta EE 10 的 umbrella 规范 的一部分。 (顺便说一句,请注意带有 Servlet 6.1 的 Jakarta EE 11 已经过期,应该很快就会发布。)
顺便说一句,Java 15 已结束生命,不再更新。您应该坚持使用其中之一:
请参阅 Wikipedia 上的 Java 版本历史记录。
Java 版本按照严格的时间表每六个月发布一次。
Jakarta EE 版本尚未有长期计划。可能会在每次 Java LTS 发布后的六个月内成为目标。