对Java模块的帮助:模块'name'读取包'javafx.beans'

问题描述 投票:0回答:1

目前,我正在尝试将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>

我希望这是足够的信息,否则我可以提供更多。谢谢!

java intellij-idea conflict java-module javafx-11
1个回答
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作为要求的所有其他库中,并且它有效!

© www.soinside.com 2019 - 2024. All rights reserved.