修复 java.lang.module.ResolutionException:两个模块将同一个包导出到非模块化应用程序中的另一个模块

Fix java.lang.module.ResolutionException: two modules export the same package to another module in a non-modular app

我正在尝试使用 Maven 使用 JavaFX 11 构建非模块化应用程序(无模块-info.java 文件)。

As suggested on openjfx.io, I'm using JavaFX Maven plugin 那个。

但是在响应 mvn javafx:run 时我收到以下错误:

 [INFO] --- javafx-maven-plugin:0.0.2:run (default-cli) @ server ---  
 Error occurred during initialization of boot layer  
 java.lang.module.ResolutionException: Modules lucene.core and
 lucene.misc export package org.apache.lucene.store to module javassist  
 [ERROR] Command execution failed.

我正在使用依赖于 org.apache.lucene:lucene-core:5.5.5org.apache.lucene:lucene-misc:5.5.5 的 Hibernate Search 5.11.2。

据我从 API 了解到,这些 jar 是简单的 JDK9 之前的 jar。所以它们应该是未命名模块的一部分,我应该不会出错。 还是我遗漏了什么?

已在 this PR 中修复。

因此,如果您遇到类似问题,要么构建并安装快照,要么等待版本 0.0.3 发布。

使用 IntelliJ 在 javafx-maven-plugin 0.0.5 中遇到这个问题 不断收到不同的错误,例如:

Error occurred during initialization of boot layer
java.lang.module.ResolutionException: Modules plexus.archiver and plexus.io export package org.codehaus.plexus.components.io.resources to module j2objc.annotations

必须从模块设置中清除所有库(org.javafx 除外)并重建项目,这最终解决了问题。