目录
环境信息
IntelliJ IDEA: 2021.2.3
maven:3.6.3
问题描述
使用IntelliJ IDEA,模块移动位置后,无法根据pom.xml自动识别成工程,导入父pom.xml也无法自动关联子工程。
项目的工程结构调整了,将大模块A移动到了大模块B里。移动了之后,无法自动识别大模块B里的模块A及其子工程。
正常的模块,文件夹的右下角有个蓝色的小方块;否则该模块没有导入进去:
File-New-Module from Existing Sources,选中了A模块的pom.xml后,可以导入A模块,但是A模块下面的子工程无法导入,需要手工一个个的导入。
而且idea.log里有报错:
INFO - pl.ProjectRootManagerComponent - Project roots of tfb have changed (trace_hash = -955500501)
java.lang.Throwable
at com.intellij.openapi.roots.impl.ProjectRootManagerComponent.logRootChanges(ProjectRootManagerComponent.java:344)
at com.intellij.openapi.roots.impl.ProjectRootManagerComponent.synchronizeRoots(ProjectRootManagerComponent.java:331)
at com.intellij.openapi.roots.impl.ProjectRootManagerComponent.fireRootsChangedEvent(ProjectRootManagerComponent.java:238)
at com.intellij.openapi.roots.impl.ProjectRootManagerImpl.fireRootsChanged(ProjectRootManagerImpl.java:449)
at com.intellij.openapi.roots.impl.ProjectRootManagerImpl$1.fireRootsChanged(ProjectRootManagerImpl.java:146)
at com.intellij.openapi.roots.impl.ProjectRootManagerImpl$1.fireRootsChanged(ProjectRootManagerImpl.java:143)
at com.intellij.openapi.roots.impl.ProjectRootManagerImpl$BatchSession.lambda$levelDown$0(ProjectRootManagerImpl.java:89)
at com.intellij.openapi.application.WriteAction.lambda$run$1(WriteAction.java:94)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteActionWithClass(ApplicationImpl.java:924)
at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:950)
at com.intellij.openapi.application.WriteAction.run(WriteAction.java:93)
at com.intellij.openapi.roots.impl.ProjectRootManagerImpl$BatchSession.levelDown(ProjectRootManagerImpl.java:89)
at com.intellij.openapi.roots.impl.ProjectRootManagerImpl.mergeRootsChangesDuring(ProjectRootManagerImpl.java:395)
at
解决方案
在A模块的pom.xml上右键,选择:Maven-Unlink Maven Projects,等待项目重新加载完就可以了。
如果Unlink Maven Projects失败,提示被其它模块占用,那么可以重新导入该模块(File-New-Module from Existing Sources)之后,再重新Unlink Maven Projects