module-info.java не требуется при выполнении через maven - PullRequest
0 голосов
/ 09 июня 2019

При разработке Java-программы, использующей Maven, я столкнулся с проблемой.До сих пор я разрабатываю все в один модуль, хотя я планирую разделить его хотя бы немного дальше.Если я запускаю программу, выполняя основной класс, программа запускается, как и ожидалось.Загрузчики классов для классов, указанных в модуле-info, работают должным образом.Информация о модуле обязательна, так как без нее программа не работает.Поскольку я использую библиотеку, которая требует доступа к отражению, мне даже нужно установить некоторые аргументы VM, чтобы позволить этому модулю получить доступ к необходимым полям.

При запуске программы через модуль mvn clean compile exec: java, модульинформация, кажется, игнорируется.Если я его удаляю, ничего плохого не происходит, и программа работает нормально.За исключением этого, загрузчики классов больше не могут найти классы, найденные ранее.

Сначала я подозревал, что, возможно, maven выполнил его с неверной версией Java, но в результате его тестирования оба раза показывали одну и ту же версию.

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

При сборке программы в .jar с помощью maven и последующем изучении полученной папки, обнаруживаются два модуля-инфо, но оба не те, которые я написал для проекта.

Iискал в Интернете много решений, но, к сожалению, единственные результаты, которые я смог найти, были: «Как использовать загрузчики классов с Java> = 9» (что я делаю правильно в соответствии с учебными пособиями), и прочее о «Maven с Java> = 9»"но я не смог найти решение.

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