当前,我正在尝试将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>
我希望这是足够的信息,否则我可以提供更多信息。 谢谢!
答案 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的库中,并且可以正常工作!