提问人:Marc Le Bihan 提问时间:11/17/2023 最后编辑:Marc Le Bihan 更新时间:11/17/2023 访问量:20
通常,在 maven 刷新后,项目的单元测试无法找到它在 module-info.java 中声明自己的模块。修复 IDE,删除 .idea
Often, after a maven refresh, unit testing of a project cannot find the module it declared itself in its module-info.java. Repair IDE, delete .idea
问:
我的项目列表中的第一个模块有十个单元测试和一个包含以下内容: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
并且尝试重新生成所有应用程序的生成项目或重新生成项目将失败,并显示以下消息:
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,重新启动它,有时必须删除文件夹(但这会导致我丢失所有个人设置),并且一次,IntelliJ重新开始理解整个项目再次很好地理解。.idea
但它很长。很长。每次发生这种麻烦时,我通常要花 1 小时 30 分,我想找到一种方法在它发生时快速修复它。
答:
这里的问题似乎源于 IDEA 使用它自己的构建系统来提供它提供的某些选项(例如,“构建”菜单中的选项基于原生构建系统),即使所讨论的项目是基于 Maven 的。
Native Build System 尝试遵循 Maven 约定,但可能存在差异,这反过来又可能导致您描述的问题。
对于基于 Maven 的项目,最好使用 Maven 工具窗口中的选项(以及相应的运行/调试配置)。您还可以启用“将 IDE 生成/运行操作委托给 Maven”。
提交附加了再版项目的 YouTrack 问题可能是个好主意,以便可以对此进行全面调查和解决。
评论
2023.2.5
我编辑了我的帖子。~/.m2/repository
.idea