Java11 Eclipse 找到自动模块,Maven 没有

Java 11 Eclipse finds automatic module, Maven does not

我正在尝试将一个 15 年前的 Maven 多模块项目升级到 Java 11,以及 Java 9 中引入的模块系统。由于该项目是使用 Maven 构建的,所有依赖关系非常清楚。首先,我想使用自动模块名称来执行此操作,以免引入升级的工件(如果不是绝对需要的话)。

Eclipse 在此过程中非常有用,自动完成模块-info.java 中的自动模块名称。例如:

requires dom4j;

但是,如果我使用 Maven 进行编译,我会收到有关它无法在其中找到刚刚自动完成的 Eclipse 模块的错误。

module-info.java:[29,18] module not found: dom4j

我正在使用 Maven 的编译器插件 3.7.0(3.8.0 根据 https://jira.apache.org/jira/browse/MCOMPILER-355 给出 NullPointerException)我怀疑 Maven 是在类路径而不是模块路径上设置 jars,但是编译器的插件调试输出不记录。

如何让 Maven 正确处理这些模块?

我 运行 遇到了同样的问题。添加

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
        </plugin>
    </plugins>
</build>

我的 pom 解决了我的问题...

Maven 版本 3.9.0 似乎有问题并且无法找到该模块,尽管依赖项正在使用 Automatic-Module-Name。降级到版本 3.8.1 有帮助。