Любое решение для LayerInstantiationException - Пакет лицензии в обоих модулях? - PullRequest
1 голос
/ 30 марта 2019

У меня есть три модуля с именами core, common и item, и каждый модуль является дочерним модулем проекта Maven. Я использую ServiceLoader для реализации сервисного подхода и Java 11 с fontawesomefx 11 (последний).

Я не работал с модульной системой Java, поэтому понятия не имею, правильно ли я делаю с файлами информации модуля. Тем не менее, модуль core и item требует наличия модуля fontawesomefx, и это приводит к следующей ошибке:

Error occurred during initialization of boot layer
java.lang.LayerInstantiationException: Package license in both module de.jensd.fx.fontawesomefx.materialicons and module de.jensd.fx.fontawesomefx.materialdesignicons

module-info для всех подмодулей:

module common {
    requires javafx.graphics;
    requires javafx.controls;
    requires de.jensd.fx.fontawesomefx.commons;
    exports common.abstractions;
    exports common.services;
    exports common.sidebar;
    opens common.services;
}

module core {
    requires common;
    requires javafx.controls;
    requires javafx.fxml;
    requires de.jensd.fx.fontawesomefx.materialdesignicons;
    uses common.services.ISidebarPlugin;
    exports core.ui to javafx.graphics;
    exports core.ui.mainpage to javafx.fxml;
    exports core.ui.sidebar to javafx.fxml;
    opens core.ui.mainpage to javafx.fxml;
    opens core.ui.sidebar to javafx.fxml;
}

module item {
    requires common;
    requires de.jensd.fx.fontawesomefx.materialicons;
    provides common.services.ISidebarPlugin with item.sidebar.ItemSidebarPlugin;
}

Если я удаляю provides common.services.ISidebarPlugin with item.sidebar.ItemSidebarPlugin;, приложение работает, но без модуля item, поскольку реализация не будет загружена ServiceLoader.

...