升级至OpenJDK 11后Eclipse RCP应用Ant构建插件依赖异常求助
解决Eclipse RCP升级到OpenJDK11后Ant构建的Lucene依赖问题
你遇到的这个问题,本质是Eclipse Neon(4.6)与OpenJDK11的兼容性差异,叠加AERI日志插件的特定版本依赖要求导致的:Neon是面向Java8设计的Eclipse版本,它的原生插件生态对Java11支持有限,而org.eclipse.epp.logging.aeri.ide插件明确要求Lucene 7.1.0~8.0.0之间的包,但Neon自带的Lucene版本大概率低于这个范围。
下面给你几个按优先级排序的可行解决方案:
1. 升级Eclipse平台到支持Java11的版本
这是最彻底的解决办法。Eclipse从2018-09版本开始正式支持Java11,后续稳定版本对Java11的兼容性更完善。升级后,平台自带的插件(包括AERI)会适配Java11,且内置符合版本要求的Lucene依赖,从根源上消除依赖缺失问题。
操作要点:
- 下载对应版本的Eclipse SDK(比如2018-09或更新的LTS版)
- 调整Ant构建脚本中指向Eclipse安装目录的路径,确保构建时使用新平台
- 同步验证RCP应用其他插件对新Eclipse版本的兼容性,必要时更新相关插件
2. 手动补充符合版本要求的Lucene依赖包
如果暂时无法升级Eclipse平台,可以手动引入适配的Lucene包来满足AERI插件的依赖:
- 下载Lucene 7.x系列稳定版本(比如7.7.3,严格在
[7.1.0,8.0.0)范围内)的以下模块jar包:lucene-core-x.x.x.jarlucene-document-x.x.x.jarlucene-index-x.x.x.jarlucene-search-x.x.x.jarlucene-store-x.x.x.jar
- 将这些jar包添加到RCP项目的依赖库,或在Ant构建脚本中配置它们的路径,确保构建过程能加载到这些依赖
- 注意不要使用8.x及以上版本的Lucene,否则仍会触发版本不匹配的错误
3. 移除不必要的AERI插件依赖
如果你的RCP应用不需要EPP自带的错误报告功能,可以直接移除这个插件的依赖:
- 在RCP产品配置文件(
.product)中找到org.eclipse.epp.logging.aeri.ide,取消勾选 - 检查所有关联的feature、plugin配置文件,确保没有引用该插件
- 重新运行Ant构建,确认依赖问题消失
另外补充一点:OpenJDK11和Java8在模块系统(JPMS)上有差异,记得调整Ant构建脚本中的编译参数,将source和target设置为11,若应用涉及模块开发,也要同步处理模块相关配置。
内容的提问来源于stack exchange,提问作者A811
相关产品推荐
相关产品推荐

