Java-модули и ресурсы в одинаковых каталогах - PullRequest
0 голосов
/ 06 декабря 2018

Я пытаюсь привыкнуть к написанию модульных приложений Java с использованием modules-info.java.У меня проблемы с пониманием того, как работает обработка ресурсов.Из предыдущих проектов я использовал каталог «i18n /» в ресурсах, где я храню все свои файлы свойств перевода.

Project A
 +- src/main/resources
    +- i18n
        +- projA_de.properties
        +- projA_en.properties

Project B
 +- src/main/resources
    +- i18n
        +- projB_de.properties
        +- projB_en.properties

Хотя это работает в Java 8 и все еще компилируется с Java 11, я получаюошибка

Package i18n in both module project.a and module project.b

Я понимаю, что Java 11 гораздо больше ожидает, что ресурсы будут находиться в тех же каталогах, что и файлы классов.Я думаю, это сработало бы, если бы я переименовал каталоги ресурсов, соответствующие пакетам, или любым другим уникальным способом - но мне не нравится создаваемый им беспорядок.

Есть ли обходной путь, который позволил бы мне сохранить мойресурсы, к которым я привык и которые все еще выигрывают от модульности?

1 Ответ

0 голосов
/ 06 декабря 2018

Я понимаю, что Java 11 гораздо больше ожидает, что ресурсы будут находиться в тех же каталогах, что и файлы классов

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

Но , модульность также предполагает, что никакие два модуля не содержат один и тот же пакет при разрешении в модуле pathpath,Следовательно, как вы уже знаете, самый простой способ решить эту проблему - переименовать структуру вашего пакета одного из модулей

Или еще один обходной путь (не очень хороший) - оставить эти модули на пути к классам ирезультат должен быть отнесен к категории безымянный модуль .

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