Помощь модулю Java: модуль 'name' читает пакет 'javafx.beans' - PullRequest
0 голосов
/ 30 марта 2019

В настоящее время я пытаюсь связать проект maven с модульной системой Java 9, но продолжаю получать одну и ту же ошибку в каждом модуле .. (с использованием Java 11)

Module 'common' reads package 'javafx.beans' from both 'javafx.base' and 'javafx.base'

Я боролся с этим часами. Пока что я могу заключить, что каждый раз, когда мне требуется модуль javafx, это происходит, и это, вероятно, связано с дублированием. В Структуре проекта (Intellij IDEA) существует два из них, версия 11.0.2 (я установил) и версия 11.0.1 (из fontawesomefx). Если я удалю все версии 11.0.1, реализация не будет работать.

module-info.java

module common {
    exports common.services;
    exports common.sidebar;
    requires de.jensd.fx.fontawesomefx.commons;
    requires javafx.graphics; // comment both javafx out, no error occurs except in the implementation.
    requires javafx.controls;
}

pom.xml общего:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <parent>
    <artifactId>parent</artifactId> <!-- replaced original id -->
    <groupId>me.name</groupId> <!-- replaced original name -->
    <version>0.0.6</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <artifactId>common</artifactId>

  <dependencies>
    <dependency>
      <groupId>de.jensd</groupId>
      <artifactId>fontawesomefx-commons</artifactId>
    </dependency>

    <dependency>
      <groupId>org.openjfx</groupId>
      <artifactId>javafx-controls</artifactId>
    </dependency>
  </dependencies>
</project>

Надеюсь, этого достаточно, иначе я могу предоставить больше. Спасибо!

1 Ответ

0 голосов
/ 30 марта 2019

Итак, я нашел решение сегодня. Все дело в дублировании, поэтому я искал, можно ли исключить пакеты из зависимости, и это так!

<dependency>
    <groupId>de.jensd</groupId>
    <artifactId>fontawesomefx-commons</artifactId>
    <version>11.0</version>
    <exclusions>
        <exclusion>
            <groupId>org.openjfx</groupId>
            <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>

Я добавил теги <exclusions></exclusions> ко всем другим библиотекам с javafx как требование, и это сработало!

...