gpt4 book ai didi

java - 如何解决 JPMS 和 OSGi Bundle for Eclipse plugin project an Tycho 之间的冲突

转载 作者:行者123 更新时间:2023-12-04 01:17:17 26 4
gpt4 key购买 nike

我正在开发一个基于 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 排除在构建之外。我找到了 this post关于如何排除模块的解释,但由于多种原因我不能这样做:

  • 许多其他模块依赖于 java.xml。删除它会产生更多问题
  • mavan tycho build 并不关心我对 eclipse 项目模块设置的处理。

在这一点上,我认为最好的解决方案是将 javax.xml 排除在构建之外,但我无法找到如何在 eclipse 和 tycho 构建中执行此操作的方法。

有谁知道如何从 Eclipse 构建/Tycho 构建中排除对插件的依赖?还是有另一种方法来解决像这样的模块/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+ wasused. This release fixes this.

Eclipse Orbit (您可以获得经批准也可用于商业产品的第三方插件)是 Xerces 2.9.0 的最新版本。因此,您必须自己创建一个 Xerces 2.12.1 插件。如果您能将这项工作贡献给 Eclipse(为此,report it to Eclipse WTP Source Editing),那就太好了。

关于java - 如何解决 JPMS 和 OSGi Bundle for Eclipse plugin project an Tycho 之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63128271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com