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

时间:2016-04-02 11:21:01

标签: java intellij-idea gradle

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

  • 为什么每个gradle子项目(client,client_main和client_test)都有3个模块?
  • 有没有办法摆脱"父母"模块?每次我删除它时,我的构建都会以令人困惑的方式打破。

Project Structure

更新

  • 第三个模块的内容根("服务器")始终设置为整个文件夹,如下所示。这意味着我无法将构建中的目录标记为生成的源,因为默认情况下会将其排除。

enter image description here

2 个答案:

答案 0 :(得分:21)

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

Project Import Dialog

然后在出现的对话框中,确保取消选择为每个源集创建单独的模块的选项。默认情况下会选中此选项。现在继续像往常那样导入项目。

Gradle configuration dialog

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

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

Imported project, package view

希望这有帮助。

答案 1 :(得分:5)

如果只想对以前导入的项目禁用此选项,则可以通过编辑位于 .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项目。

相关问题