Можно ли импортировать две банки с одинаковыми пакетами? - PullRequest
0 голосов
/ 29 ноября 2018

Я перевожу проект с Java 8 на Java 11, и модульность, представленная в java 9, доставляет мне головную боль.Пара баночек имеет одинаковые пакеты, но разных классов.Это дает мне ошибку

module SomeModule reads package my.package from both ModuleA and ModuleB

Интересно, как поступить с такими случаями, учитывая, что не все банки находятся под моим контролем, рефакторинг не является решением.

1 Ответ

0 голосов
/ 29 ноября 2018

Один из способов заключается в том, чтобы оба этих сосуда оказались на classpath в Безымянный модуль .Но обратите внимание, что

Безымянный модуль экспортирует все свои пакеты .Это обеспечивает гибкую миграцию ... Однако это не означает, что код в названном модуле может обращаться к типам в неназванном модуле .

A именованный модуль фактически не может даже объявить зависимость от неназванного модуля .Это ограничение является преднамеренным, поскольку разрешение именованных модулей зависеть от произвольного содержимого пути к классу сделает надежную конфигурацию невозможной.

Конечно, идеальным решением будет сделать дномиграции и убедитесь, что никакие два модуля не предоставляют один и тот же пакет модулю, который requires оба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...