升级Eclipse 4.23适配Java 11时遇javax.xml.bind依赖缺失问题
检查p2仓库中javax.xml.bind的bundle标识与版本
确认仓库内的javax.xml.bind bundle的Bundle-SymbolicName严格为javax.xml.bind,且版本不低于2.2.0。部分第三方仓库的jaxb包可能使用com.sun.xml.bind或org.glassfish.jaxb这类不同的符号名,这类包无法被识别为依赖要求的javax.xml.bind。同时查看该bundle的MANIFEST.MF文件,确保OSGi元数据完整,正确声明了bundle身份。验证p2仓库的配置有效性
若使用Eclipse目标平台,检查激活的目标定义是否包含该p2仓库,URL是否正确且可正常访问(路径:Window > Preferences > Plug-in Development > Target Platform)。若用Maven Tycho构建,确认pom.xml的repositories节点已正确配置该仓库,执行mvn clean verify时无仓库访问报错。排查传递依赖缺失问题
javax.xml.bind 2.2.0依赖javax.activation、javax.xml.stream等包,这些依赖缺失会导致主bundle无法被解析。查看构建日志的完整输出,找出隐藏的依赖缺失提示,补充对应的bundle到仓库或目标平台。同时清理Eclipse缓存:删除工作区下.metadata/.plugins/org.eclipse.pde.core/.bundle_pool和.metadata/.plugins/org.eclipse.m2e.core目录,重启后重新构建。升级Mylyn组件至Java 11兼容版本
org.eclipse.mylyn.commons.notifications.feed 1.17.2版本较旧,对Java 11兼容性不足。尝试升级Mylyn相关组件到3.24及以上版本,新版本通常会替换旧的javax.xml.bind依赖,改用Java 11内置API或兼容替代包。
内容的提问来源于stack exchange,提问作者Birudeo Garande

