多模块项目Module must not contain source root. The root already belongs to module

多模块项目Module “*” must not contain source root *. The root already belongs to module “*”.

有时候新建了maven工程,然后删了里面的src目录让它成为空的父项目,但是会报下面的错误。

Module “*” must not contain source root *. The root already belongs to module “*”.

打开工程的iml文件后,发现里面记录了开始的源文件和资源文件的配置。


<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false">
    <output url="file://$MODULE_DIR$/target/classes" />
    <output-test url="file://$MODULE_DIR$/target/test-classes" />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
      <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
      <excludeFolder url="file://$MODULE_DIR$/target" />
    content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
  component>
module>

修改以后的


<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false">
    <output url="file://$MODULE_DIR$/target/classes" />
    <output-test url="file://$MODULE_DIR$/target/test-classes" />
    <content url="file://$MODULE_DIR$">
      <excludeFolder url="file://$MODULE_DIR$/target" />
    content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
  component>
module>

网上的另一种解决方式:
多模块项目Module must not contain source root. The root already belongs to module_第1张图片
在项目设置中, 右侧有源文件、资源文件等 目录列表

删除不是子工程该有的目录。

你可能感兴趣的:(maven)