依赖关系未解决:DocumentBuilderFactory 类需要 openJDK 11 中 javax.xml.parsers 的依赖关系

Dup*_*ngh 4 ivy openjdk-11

故事: 我使用 JDK8 和 IVY 作为 ANT Builder 的依赖管理器。一切都很好。我的DocumentBuilderFactory 班级能够找到javax.xml.parsers依赖关系。

问题: 现在我转移到 Open JDK11,现在DocumentBuilderFactory无法找到javax.xml.parsers依赖项。

Eclipse 给了我导入建议,但是当我导入时没有任何反应,并且导入已经表示导入 javax.xml.parsers.DocumentBuilder 无法 像这样解析: 导入显示依赖关系未解决

我需要什么解决方案: 我需要 Open JDK 11 的 IVY 依赖项来 javax.xml.parsers支持DocumentBuilderFactory

截图我的类需要依赖:(

小智 5

我也面临这个问题,

这是因为DocumentBuilderFactory其他软件包也可用。

原因 有时dependenciestransitive dependencies随身携带

例如,Class也XYZ可以在jarAJarB中使用JarC。这个问题直到发布Java8后才出现,并随Java Platform Module System一起发布。Java9Java9

该模块系统限制在不同的 jar 中具有相同名称的多个类,我并不是说我们不能在不同的类中具有相同的名称,为此您必须编写module-info.java并将应用程序转换为Module System.

如果您不打算将应用程序移入其中Module System,那么您可以执行以下操作:删除应用程序不需要的依赖项并具有相同的命名类。

就像你的问题你能做什么

  • 打开项目于eclipse
  • ctrl+ shit+ T>
  • 对话框打开>写下你的类名,这会产生问题,>
  • 对话框将显示包含相同内容的包class,现在找出由于其他依赖而不需要或传递属性的包>
  • Right click在包名称上,然后单击show in Package Explorer>
  • 现在您将获得依赖管理器中的jar名称removeexcludejar,例如GradleMavenIvy

我知道这个过程很漫长,但这是你的应用程序,你的爱,你必须维护它。