目前,我正在尝试将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>
我希望这是足够的信息,否则我可以提供更多。谢谢!
所以我今天找到了解决方案。这完全是关于重复,所以我搜索了是否有可能从依赖项中排除包,它是!
<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作为要求的所有其他库中,并且它有效!