协助Java模块:模块“名称”读取程序包“ javafx.beans”

时间:2019-03-29 22:18:01

标签: java intellij-idea conflict java-module javafx-11

当前,我正在尝试将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 :(得分:0)

所以我今天找到了解决方案。一切都是关于重复的,所以我搜索了是否有可能将包从依赖项中排除,这是可以的!

<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的库中,并且可以正常工作!

相关问题