首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Eclipse中的多个模块访问的包

从Eclipse中的多个模块访问的包
EN

Stack Overflow用户
提问于 2020-03-22 17:56:39
回答 1查看 556关注 0票数 1

我从Eclipse2019-12到2020-03更新了一个Eclipse项目。更新之后,我在导出上得到了构建错误,如:“可以从多个模块:、java.xml访问包javax.xml.parsers”。

在我的项目中,我使用的是Java 11、无模块info.java文件、Eclipse 3兼容层和eclipse产品导出向导。

错误信息对我来说基本上是清楚的。它在类路径上检测到某些类两次,这是不允许的。一旦这个类由JDK模块提供,"java.xml“。第二个副本来自javax.xml osgi。我的问题是这两个包都不能移除。JDK模块有很多依赖的JDK模块,它们在代码中得到了积极的使用,我不认为它们可以得到一些库的补充。许多非常基本的eclipse捆绑包都使用OSGI包。所以它也不能被移除。

所以我有两个问题:

  1. 为什么Eclipse会用它的新版本中断项目?那以前被认为是虫子吗?(我没有找到一张票)
  2. ,我怎样才能让我的项目在没有真正大的变化的情况下再次运行?

编辑1:添加可复制示例:https://workupload.com/file/wKUZTXJXsR9

编辑2:另见Eclipse票证:https://bugs.eclipse.org/bugs/show_bug.cgi?id=562761

我创建了一个最小的例子。通过向导导出产品可以看出问题所在。我使用了DocumentBuilderFactory ( javax.xml in Application.java )来触发这个问题。我发现了一些事情:

  • 需要org.eclipse.help.ui的插件依赖才能触发问题。尽管其他插件也有对javax.xml的依赖,但是如果我向javax.xml插件添加直接依赖项,javax.xml会告诉您编辑器中的问题。但是我们对它只有一个传递依赖,因此没有提示。

这提出了一些新的问题:

  1. 似乎是org.eclipse.help.ui插件造成了问题,但我们在应用程序中需要它。这可能是个窃听器吗?如果我只对alternatives?
  2. Why插件有一个传递依赖,eclipse编辑器就不会显示问题吗?也是一个可能的bug?
EN

回答 1

Stack Overflow用户

发布于 2020-06-05 15:46:24

我找到了解决这个问题的方法:当使用目标定义(*.target文件)而不是运行平台( Eclipse的自动目标定义)时,错误根本不会发生!我不知道这两个目标到底有什么区别,因为它们都包含"javax.xml“包。但是,在使用目标文件时,当自动添加依赖项时,"javax.xml“包不会添加到产品文件中,以后也不会抱怨这个包需要"javax.xml”。在使用目标文件时,根本不需要使用"javax.xml“,然后就不会发生错误。

我认为Eclipse中存在一个错误,在使用运行平台时会导致这个问题。但我建议无论如何使用目标定义文件,因为这带来了许多其他优势。

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

https://stackoverflow.com/questions/60802975

复制
相关文章

相似问题

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