SuperAPI AI 工具集

javax-to-jakarta-migration

编程与开发

查看项目

更新于 10-16 13:57

技能介绍

用途

javax-to-jakarta-migration 技能用于将 Java 项目中的 javax.* 命名空间迁移到 jakarta.* 命名空间。适用场景包括:升级到 Tomcat 11 或 Jakarta EE 10+;代码审查中发现 javax.* 导入;将现有项目迁移到 jakarta 命名空间。

主要能力

该技能提供了一套分步迁移流程:

  1. 扫描代码库中的 javax 使用情况,识别需要迁移的 javax.* 导入。
  2. 更新 pom.xml 中的依赖坐标。
  3. 更新 web.xml(如果存在)的命名空间。
  4. 更新 Java 源文件,将 javax. 导入替换为对应的 jakarta. 等价导入。
  5. 验证:运行 mvn clean compile 或 gradlew build 修复编译错误;运行 mvn test 或 gradlew test 确保测试通过;搜索是否残留 javax.* 导入(排除 JDK 包)。

使用方式

第 1 步 — 扫描 javax 使用情况

搜索代码库中所有需要迁移的 javax.* 导入:

javax.servlet.*      → jakarta.servlet.*
javax.persistence.*  → jakarta.persistence.*
javax.validation.*   → jakarta.validation.*
javax.annotation.*   → jakarta.annotation.*
javax.inject.*       → jakarta.inject.*
javax.enterprise.*   → jakarta.enterprise.*
javax.faces.*        → jakarta.faces.*
javax.ws.rs.*        → jakarta.ws.rs.*
javax.el.*           → jakarta.el.*
javax.json.*         → jakarta.json.*
javax.mail.*         → jakarta.mail.*
javax.websocket.*    → jakarta.websocket.*

以下包不要迁移(它们仍属于 javax.*):

javax.sql.* — 属于 JDK
javax.naming.* — 属于 JDK(JNDI)
javax.crypto.* — 属于 JDK
javax.net.* — 属于 JDK
javax.security.auth.* — 属于 JDK
javax.swing.*, javax.xml.parsers.* — JDK 包

第 2 步 — 更新 pom.xml

替换依赖坐标:

旧 新
javax.servlet:javax.servlet-api jakarta.servlet:jakarta.servlet-api:6.0.0
javax.persistence:javax.persistence-api jakarta.persistence:jakarta.persistence-api:3.1.0
javax.validation:validation-api jakarta.validation:jakarta.validation-api:3.0.2
javax.annotation:javax.annotation-api jakarta.annotation:jakarta.annotation-api:2.1.1

第 3 步 — 更新 web.xml(如果存在)

<!-- 旧命名空间 -->
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="4.0">

<!-- 新命名空间 -->
<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" version="6.0">

第 4 步 — 更新 Java 源文件

在 .java 文件中将所有 javax. 导入替换为对应的 jakarta. 等价导入。

第 5 步 — 验证

  • 运行 mvn clean compile 或 gradlew build — 修复编译错误
  • 运行 mvn test 或 gradlew test — 确保所有测试通过
  • 搜索是否残留 javax.* 导入(排除 JDK 包)

输出

提供迁移摘要,列出所有变更文件、替换的导入以及任何需要手动处理的步骤。

适用场景

  • 升级至 Tomcat 11 / Jakarta EE 10+
  • 代码审查检测到 javax.* 导入
  • 将现有项目迁移到 jakarta 命名空间

限制

原资料未提供关于价格、收费、平台支持范围、性能效果或额外使用步骤的信息,这些内容暂未提供。