我正在从事一个基于Eclipse的项目,该项目最近从Java1.8切换到了Java 11。由于这个原因,我们现在在JRE的类和从Eclipse插件依赖项引入的类之间存在冲突。
The package javax.xml.parsers is accessible from more than one module: <unnamed>, java.xml因此java.xml.*类现在出现了两次。一次来自模块java.xml,一次由于插件到org.eclipse.wst.xml.core的依赖关系
org.eclipse.wst.xml.core -> org.apache.xerces -> javax.xml我想要做的是将模块java.xml或包javax.xml排除在构建中。我找到了这个职位,并解释了如何排除模块,但由于多种原因,我不能这样做:
在这一点上,我认为最好的解决方案是将javax.xml排除在构建中,但是我无法找到在eclipse内部和tycho构建中如何做到这一点。
有人知道如何从Eclipse构建/Tycho构建中排除对插件的依赖吗?或者还有其他方法来解决这样的模块/osgi冲突?
发布于 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源代码编辑报告),那就太好了。
https://stackoverflow.com/questions/63128271
复制相似问题