提问者:小点点

IntelliJ IDEA和Gradle:为什么每个子模块有3个模块?


我对IntelliJ IDEA的gradle集成以及gradle子项目到IDEA模块的映射感到相当困惑。

  • 为什么每个gradle子项目有3个模块(客户端、client_main和client_test)?
  • 有没有办法摆脱“父”模块?每次我删除它,我的构建都会以令人困惑的方式中断。

更新

    < li >第三个模块("服务器")的内容根目录始终设置为整个文件夹,如下所示。这意味着我不能将构建中的目录标记为生成的源,因为默认情况下它们被排除在外。


共2个答案

匿名用户

现在可以在IDEA中导入gradle项目时取消选择该选项,请在2016.1.2 Ultimate IDE中选中。首先转到导入gradle选项并选择您的gradle文件。

然后在出现的对话框中,确保取消选择显示“为每个源集创建单独的模块”的选项。默认情况下处于选中状态。现在像往常一样继续导入项目。

就是这样,您可以享受您的项目,将为多项目gradle构建中的每个子项目创建一个模块。

此选项仅在您在gradle中为像我这样的测试提供单独的子项目时才有用。否则,默认方式非常有效,因为我发现启动单元测试更容易。

希望这有帮助。

匿名用户

如果您只想为以前导入的项目禁用此选项,您可以通过编辑位于 .idea/gradle.xml 中的 idea gradle 配置文件来实现。

添加将resolveModulePerSourceSet设置为false的这一行:

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  ...
  <component name="GradleSettings">
    <option name="linkedExternalProjectsSettings">
      <GradleProjectSettings>
        ...
        <option name="resolveModulePerSourceSet" value="false" />
      </GradleProjectSettings>
    </option>
  </component>
</project>

然后刷新gradle项目。