如何解决 JPMS 和 OSGi Bundle for Eclipse plugin project an Tycho 之间的冲突
How to resolve conflict between JPMS and OSGi Bundle for Eclipse plugin project an Tycho
我正在开发一个基于 Eclipse 的项目,该项目最近从 Java 1.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 排除在构建之外。我发现 解释了如何排除模块,但由于多种原因我不能这样做:
- 许多其他模块依赖于 java.xml。删除它会产生更多问题
- mavan tycho 构建并不关心我对 eclipse 项目模块设置的处理。
在这一点上,我认为最好的解决方案是将 javax.xml 排除在构建之外,但我无法找到如何在 eclipse 和 tycho 构建中执行此操作的方法。
有谁知道如何从 Eclipse build/Tycho 构建中排除对插件的依赖?或者有其他方法可以解决这样的 module/osgi 冲突吗?
看起来 根本原因 是 org.eclipse.wst.xml.core
在尚未为 Java 9 准备好的版本中使用 Xerces或更高 并且 reexports this dependency.
根据 release notes of Xerces Java 9 或更高版本至少需要版本 2.12.1(目前是最新版本):
Xerces-J was previously not building from sources when Java 9+ was
used. This release fixes this.
在Eclipse Orbit (where you can get third-party plugins that are approved to be used also in commercial products) is the latest version of Xerces 2.9.0. So you have to create a Xerces 2.12.1 plugin yourself. It would be nice if you could contribute this work to Eclipse (to do so, report it to Eclipse WTP Source Editing).
我正在开发一个基于 Eclipse 的项目,该项目最近从 Java 1.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 排除在构建之外。我发现
- 许多其他模块依赖于 java.xml。删除它会产生更多问题
- mavan tycho 构建并不关心我对 eclipse 项目模块设置的处理。
在这一点上,我认为最好的解决方案是将 javax.xml 排除在构建之外,但我无法找到如何在 eclipse 和 tycho 构建中执行此操作的方法。
有谁知道如何从 Eclipse build/Tycho 构建中排除对插件的依赖?或者有其他方法可以解决这样的 module/osgi 冲突吗?
看起来 根本原因 是 org.eclipse.wst.xml.core
在尚未为 Java 9 准备好的版本中使用 Xerces或更高 并且 reexports this dependency.
根据 release notes of Xerces Java 9 或更高版本至少需要版本 2.12.1(目前是最新版本):
Xerces-J was previously not building from sources when Java 9+ was used. This release fixes this.
在Eclipse Orbit (where you can get third-party plugins that are approved to be used also in commercial products) is the latest version of Xerces 2.9.0. So you have to create a Xerces 2.12.1 plugin yourself. It would be nice if you could contribute this work to Eclipse (to do so, report it to Eclipse WTP Source Editing).