1. 程式人生 > >多模組專案Module must not contain source root. The root already belongs to module

多模組專案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檔案後,發現裡面記錄了開始的原始檔和資原始檔的配置。

<?xml version="1.0" encoding="UTF-8"?>
<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>

修改以後的

<?xml version="1.0" encoding="UTF-8"?>
<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>

網上的另一種解決方式:
這裡寫圖片描述
在專案設定中, 右側有原始檔、資原始檔等 目錄列表

刪除不是子工程該有的目錄。