求升级或Fork ReplaceXlipse Eclipse插件及部署报错解决
ReplaceXlipse插件JAXB类加载错误解决方案
- 核心原因是Eclipse基于OSGi容器实现类隔离,本地调试时PDT会自动把项目lib目录加入运行时类路径,但打包发布时需要手动配置OSGi元信息才能正确加载依赖
修复步骤
- 配置
META-INF/MANIFEST.MF文件
新增/修改Bundle-ClassPath配置项,将所有自定义加入的jaxb依赖全路径加入配置,示例:
同时确认Bundle-ClassPath: ., lib/codemodel.jar, lib/dtd-parser.jar, lib/FastInfoset.jar, lib/istack-commons-runtime.jar, lib/istack-commons-tools.jar, lib/javax.activation-api.jar, lib/javax.xml.stream-3.0.1.jar, lib/jaxb-api.jar, lib/jaxb-jxc.jar, lib/jaxb-runtime.jar, lib/jaxb-xjc.jar, lib/relaxng-datatype.jar, lib/rngom.jar, lib/stax-ex.jar, lib/txw2.jar, lib/w3c-dom.jar, lib/xsom.jarImport-Package中没有排除javax.xml.bind相关包,私有引入即可无需额外配置导出规则。 - 校验打包导出配置
导出插件jar时,务必在build配置中勾选lib目录及所有内部jar文件,导出完成后可用解压工具打开最终插件jar,确认根目录存在lib文件夹且所有依赖包完整。 - 清理STS缓存重试安装
直接将插件放入plugins目录容易出现缓存冲突,建议放到dropins目录,启动STS时追加-clean参数清空OSGi运行时缓存,避免旧版本插件缓存干扰类加载。
优化方案
可不用自行打包JAXB依赖,直接依赖Eclipse官方内置的JAXB相关bundle,在插件依赖中添加对应官方JAXB组件即可,减少插件体积同时避免版本冲突。
内容的提问来源于stack exchange,提问作者Savers80
相关产品推荐
相关产品推荐

