Пакет доступен из более чем одного модуля в Eclipse RCP - PullRequest
0 голосов
/ 22 марта 2020

Я обновил проект RCP Eclipse с Eclipse 2019-12 до 2020-03. После обновления я получаю ошибки сборки при экспорте, например: «Пакет javax. xml .parsers доступен из более чем одного модуля:, java. xml».

Я используя Java 11, без файла module-info. java, уровень совместимости Eclipse 3 и мастер экспорта продукта eclipse в моем проекте.

Сообщение об ошибке в принципе мне ясно. Он дважды обнаруживает некоторый класс в classpath, что недопустимо. После того, как класс предоставляется JDK модулем "java. xml". Вторая копия взята из javax. xml osgi bundle. Моя проблема в том, что оба пакета не могут быть удалены. Модуль JDK имеет много зависимых модулей JDK, которые активно используются в коде, и я не думаю, что они могут быть дополнены некоторыми библиотеками. Пакет OSGI используется многими базовыми пакетами eclipse c. Поэтому его также нельзя удалить.

Поэтому у меня есть два вопроса:

  1. Почему Eclipse RCP ломает проекты в своей новой версии? Это считалось ошибкой раньше? (Я не нашел тикет)
  2. Как я могу снова запустить мой проект без действительно больших изменений?

Редактировать 1: Добавлен воспроизводимый пример: https://workupload.com/file/wKUZTXJXsR9

Редактировать 2: См. Также Eclipse Bug Ticket: https://bugs.eclipse.org/bugs/show_bug.cgi?id=562761

Я создал минимальный пример. Можно увидеть проблему, экспортировав продукт через мастера. Я использовал DocumentBuilderFactory из javax. xml в приложении. java, чтобы вызвать проблему. Я обнаружил несколько вещей:

  • Зависимость плагина от org.eclipse.help.ui необходима, чтобы вызвать проблему. Хотя и другие плагины имеют зависимости от плагина javax. xml.
  • Eclipse сообщит вам о проблеме в редакторе, если вы добавите прямую зависимость к плагину javax. xml. Но у нас есть только транзитивная зависимость от него, и поэтому мы не получаем подсказки.

Это вызывает некоторые новые вопросы:

Кажется, что плагин org.eclipse.help.ui вызывает проблему, но он нам нужен в нашем приложении. Это возможная ошибка? Есть ли альтернативы? Почему редактор затмений не показывает проблему, если у меня есть только транзитивная зависимость от плагина javax. xml? Также возможная ошибка?
...