Eclipse 无法构建,但 Maven 可以,因为从 Java 8 移动到 Java 11

Eclipse cannot build, but maven can since moving from Java 8 to Java 11

这里是最小的reproduction

我正在使用 Eclipse Version: 2019-03 M1 (4.11.0 M1)Build id: 20190117-2133

有问题的 jar 是 Selenium,但它们是主项目中唯一的多版本 jar,所以我认为这可能是问题的一部分

基本上,Eclipse 在构建时出错

selenium.firefox.driver cannot be resolved to a module

并且该模块下 类 的所有导入都会出现错误

The import org.openqa.selenium cannot be resolved

或其一些变体。有时是org声称无法解析

重要的是,这个 确实 在 Maven

下成功编译

您可以将 Selenium 与 Java 11 一起使用。只需从 module_info.java 中删除 Selenium 并将其用作额外的 jar 文件即可。

如果您想将 Selenium 用作 Java 模块,您必须编辑您的项目设置并将 Selenium 添加到您的 Modulepath 中:

不幸的是,Maven 插件似乎在 Eclipse 项目更新期间忽略了这一点(不仅是 Selenium)。

为了解决这个问题,我还必须修改模块-info.java:

module browserAutomation{

  requires org.openqa.selenium.core;
  requires org.openqa.selenium.firefox;

}

这对应于https://github.com/SeleniumHQ/selenium/tree/master/java/client/src/org/openqa/selenium

处的源代码