首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决Eclipse项目OSGi包与JPMS之间的冲突

如何解决Eclipse项目OSGi包与JPMS之间的冲突
EN

Stack Overflow用户
提问于 2020-07-28 06:33:45
回答 1查看 629关注 0票数 3

我正在从事一个基于Eclipse的项目,该项目最近从Java1.8切换到了Java 11。由于这个原因,我们现在在JRE的类和从Eclipse插件依赖项引入的类之间存在冲突。

代码语言:javascript
复制
The package javax.xml.parsers is accessible from more than one module: <unnamed>, java.xml

因此java.xml.*类现在出现了两次。一次来自模块java.xml,一次由于插件到org.eclipse.wst.xml.core的依赖关系

代码语言:javascript
复制
org.eclipse.wst.xml.core -> org.apache.xerces -> javax.xml

我想要做的是将模块java.xml或包javax.xml排除在构建中。我找到了这个职位,并解释了如何排除模块,但由于多种原因,我不能这样做:

  • 许多其他模块依赖于java.xml。删除这个会产生更多的问题。
  • mavan tycho构建不关心我对eclipse项目模块设置做了什么。

在这一点上,我认为最好的解决方案是将javax.xml排除在构建中,但是我无法找到在eclipse内部和tycho构建中如何做到这一点。

有人知道如何从Eclipse构建/Tycho构建中排除对插件的依赖吗?或者还有其他方法来解决这样的模块/osgi冲突?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-03 13:14:58

看起来,的根本原因是org.eclipse.wst.xml.core在一个尚未为Java9或更高版本准备好的版本中使用Xerces,并且它使用再导出此依赖项

根据萨克斯至少版本2.12.1(目前是最新版本),Java9或更高版本需要:

以前使用9+时,Xerces-J并不是从源代码中构建的。这个版本解决了这个问题。

月食轨道中,Xerces 2.9.0的最新版本是Xerces 2.9.0的最新版本(在这里你可以获得第三方插件,这些插件也被批准用于商业产品)。因此,您必须自己创建一个Xerces 2.12.1插件。如果您能够将这项工作贡献给Eclipse (这样做,向Eclipse源代码编辑报告),那就太好了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63128271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档