Eclipse 2023-09 EE版无法设置JPA及EJB Facet版本咨询
在Eclipse中创建Jakarta EE 10 EJB项目(适配JPA 3.1、EJB 4.0与Java 21)
核心问题原因
Eclipse默认的旧版EJB项目向导基于Java EE(而非Jakarta EE)规范,无法识别Jakarta EE 10的新组件版本,即使Maven依赖配置正确,也无法通过项目切面选择更高版本。
解决方案步骤
1. 确保Eclipse版本兼容
必须使用Eclipse 2023-03或更高版本,旧版本不支持Jakarta EE 10的项目配置。
2. 安装Jakarta EE开发工具
若Eclipse未自带Jakarta EE支持:
- 打开
Help > Eclipse Marketplace - 搜索并安装
Eclipse Enterprise Java and Web Developers套件,或直接搜索Jakarta EE Platform插件
3. 新建Jakarta EE 10 EJB项目
- 依次点击
File > New > Project... - 在弹窗中选择
Jakarta EE > Jakarta EE EJB Project(注意不是旧的EJB Project选项) - 输入项目名称后点击Next,在
Target runtime中选择支持Jakarta EE 10的服务器(如WildFly 27+、GlassFish 7+、Payara 6+),无可用服务器可选择None(后续用Maven管理依赖) - 在
Jakarta EE Version下拉菜单中选择Jakarta EE 10,此时即可勾选EJB 4.0和JPA 3.1组件 - 若选择Maven管理项目,确认
pom.xml中自动生成的依赖为Jakarta EE 10规范:<dependencies> <dependency> <groupId>jakarta.platform</groupId> <artifactId>jakarta.jakartaee-api</artifactId> <version>10.0.0</version> <scope>provided</scope> </dependency> </dependencies> - 完成向导,项目创建后即可正常开发EJB和JPA组件
4. 修复现有EJB项目(无需新建)
如果要保留现有项目,按以下步骤调整:
- 打开项目的
pom.xml,替换所有旧Java EE依赖为Jakarta EE 10依赖(如上述jakarta.jakartaee-api) - 右键项目 >
Properties > Project Facets - 先取消勾选旧版的
EJB、JPA切面,点击**Change...**按钮,选择Jakarta EE 10作为目标运行时 - 重新勾选
EJB 4.0和JPA 3.1切面,点击Apply and Close保存配置
5. 服务器兼容性注意事项
Java 21需配合支持Jakarta EE 10的服务器版本:
- WildFly 28+
- GlassFish 7.0.10+
- Payara 6+
内容的提问来源于stack exchange,提问作者Thomas P
相关产品推荐
相关产品推荐

