Intellij Idea 通常,在maven刷新后,项目的单元测试无法找到它在其模块-info.java中声明的模块,

uurity8g  于 5个月前  发布在  Maven
关注(0)|答案(1)|浏览(82)

我的项目列表中的第一个模块有十个单元测试和一个module-info.java,包含:

module fr.ecoemploi.domain.utils {
   requires org.slf4j;
   requires org.apache.commons.lang3;

   exports fr.ecoemploi.domain.utils.objets;
   exports fr.ecoemploi.domain.utils.autocontrole;
}

字符串
在命令行中从mvn clean install编译并成功完成测试。
如果运气好的话,当我刷新整个maven项目时,项目及其测试也在编译中,整个应用程序也可以从 IntelliJ 2023.2.5 构建和测试,
从IDE启动的测试立即停止,并显示错误:

Error occurred during initialization of boot layer
java.lang.module.FindException: Module fr.ecoemploi.domain.utils not found


以及尝试重建所有应用程序的 Build ProjectRebuild Project 将失败,并显示以下消息:

module not found: fr.ecoemploi.domain.utils
module not found: org.slf4j
module not found: org.apache.commons.lang3
module not found: io.swagger.v3.oas.annotations
module not found: java.validation


但是,如果我通过右键单击上下文菜单只重建该模块,则构建将成功,单元测试也将成功。
因为我不能用IntelliJ构建我的应用程序的其余部分,我不能再测试它了,我必须切换到命令行来执行构建,使用 Maven
当我遇到这个问题时,目前,我的解决方法是尝试 * 修复IDE*,重新启动它,有时必须删除.idea文件夹(但这会导致我失去所有的个人设置),并且在某个时候,IntelliJ 重新启动重新理解整个项目。
但是它很长,非常长,每次出现这种故障,我经常要花1小时30分,我想找到一种方法,当它发生时,可以快速修复它。

ttvkxqim

ttvkxqim1#

这里的问题似乎源于IDEA使用自己的构建系统来提供一些选项(例如,“构建”菜单中的选项基于本地构建系统),即使所讨论的项目是基于Maven的。
本机构建系统试图坚持Maven约定,但可能存在差异,这反过来可能导致您所描述的问题。
对于基于Maven的项目,最好使用Maven Tool Window(和相应的Run/Debug Configurations)中的选项。您也可以启用“Delegate IDE build/run actions to Maven“。
可能是一个好主意,提交一个YouTrack Issue与复制项目附加,所以这可以充分调查和解决。

相关问题