Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java11Eclipse找到了自动模块,Maven没有_Maven_Java Module_Maven Compiler Plugin - Fatal编程技术网

Java11Eclipse找到了自动模块,Maven没有

Java11Eclipse找到了自动模块,Maven没有,maven,java-module,maven-compiler-plugin,Maven,Java Module,Maven Compiler Plugin,我正在尝试将一个已有15年历史的Maven多模块项目升级到Java11,以及Java9中引入的模块系统。由于项目是使用Maven构建的,所以所有依赖关系都非常清楚。首先,我想使用自动模块名来实现这一点,以便不引入升级的工件(如果不是绝对需要的话) Eclipse在这个过程中非常有用,它自动完成module-info.java中的自动模块名称。例如: requires dom4j; 但是如果我用Maven编译,我会得到错误,因为它找不到Eclipse刚刚自动完成的模块 module-info.j

我正在尝试将一个已有15年历史的Maven多模块项目升级到Java11,以及Java9中引入的模块系统。由于项目是使用Maven构建的,所以所有依赖关系都非常清楚。首先,我想使用自动模块名来实现这一点,以便不引入升级的工件(如果不是绝对需要的话)

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

requires dom4j;
但是如果我用Maven编译,我会得到错误,因为它找不到Eclipse刚刚自动完成的模块

module-info.java:[29,18] module not found: dom4j
我使用的是Maven的编译器插件3.7.0(3.8.0给出了一个NullPointerException,根据)。我怀疑Maven是在类路径而不是模块路径上设置JAR,但是编译器的插件调试输出没有记录这一点


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

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

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

org.apache.maven.plugins
maven编译器插件
3.8.1

我的pom为我解决了这个问题…

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

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

org.apache.maven.plugins
maven编译器插件
3.8.1

我的pom为我解决了问题…

首先,您定义了一个所需的模块,该模块不存在,如错误输出所示。这意味着您必须使用具有模块描述符的更高版本。此外,引用的问题已关闭。此外,如果没有更多信息,则无法提供帮助,尤其是您应该使用最新版本的maven编译器插件,并将您使用的所有插件更新为最新版本,因为与模块支持等相关的更改数量较大。拥有完整的pom文件和module-info.java文件……下载并手动编译maven-compiler-plugin.3.8.1-SNAPSHOT(并使用它)会导致模块出现明显错误,因此3.7.0和3.8.0显然都无法处理此项目结构。很遗憾,说快照版本使它有所不同是没有帮助的。如果有一个示例项目能够显示问题并使问题重现成为可能,那将是很有帮助的。此外,如果你认为这是一个真正的错误,请在适当的信息文件中的问题。如果不知道你的项目结构,就不可能以任何方式提供帮助……这是一个有15年历史的项目,你不想列出整个结构,它会吓唬人。问题的实质是maven编译器插件3.7.0显然没有将(所有)自动命名模块放在modulepath上,3.8.0有一个NullPointerException。是的,NPE问题已经解决,因此使用了3.8.1(快照,因为它尚未发布)。因此,如果有人遇到这个问题,他会知道该怎么办。对不起,这没有帮助。自动模块名称是错误的。您必须在没有信息的情况下使用MANIFEST.MF(自动模块名称输入)无法提供帮助…首先,您定义了一个所需的模块,该模块不存在,如错误输出中所示。这意味着您必须使用具有模块描述符的更高版本。此外,引用的问题已关闭。此外,如果没有更多信息,则无法提供帮助,尤其是您应该使用最新版本的maven编译器插件,并将您使用的所有插件更新为最新版本,因为与模块支持等相关的更改数量较大。拥有完整的pom文件和module-info.java文件……下载并手动编译maven-compiler-plugin.3.8.1-SNAPSHOT(并使用它)会导致模块出现明显错误,因此3.7.0和3.8.0显然都无法处理此项目结构。很遗憾,说快照版本使它有所不同是没有帮助的。如果有一个示例项目能够显示问题并使问题重现成为可能,那将是很有帮助的。此外,如果你认为这是一个真正的错误,请在适当的信息文件中的问题。如果不知道你的项目结构,就不可能以任何方式提供帮助……这是一个有15年历史的项目,你不想列出整个结构,它会吓唬人。问题的实质是maven编译器插件3.7.0显然没有将(所有)自动命名模块放在modulepath上,3.8.0有一个NullPointerException。是的,NPE问题已经解决,因此使用了3.8.1(快照,因为它尚未发布)。因此,如果有人遇到这个问题,他会知道该怎么办。对不起,这没有帮助。自动模块名称是错误的方式。您必须在没有信息的情况下使用MANIFEST.MF(自动模块名称输入)不可能提供帮助…是的,在我发表文章时还没有发布。3.8.1-SNAPSHOT确实有效是的,在我发帖时还没有发布。3.8.1-SNAPSHOT确实有效