You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Gradle为IntelliJ IDEA模块添加多个内容根目录并整合结构

问题:如何让IntelliJ IDEA中目录(1)显示为(2)的样式并包含(3)的内容?

我的环境包含两个项目:一个是带有全部必要源码的base项目,另一个是包含base项目并添加额外源码的admin项目。

项目结构

admin
│
├-base
│ ├-src
│ │ └-main (2)
│ │   ├-java
│ │   └-resources
│ └-build.gradle
│
├-src (1)
│ └-main (3)
│   ├-java
│   └-resources
├-build.gradle
└-settings.gradle

标注的数字(n)对应下方附图内容。

相关Gradle文件内容

admin/settings.gradle

rootProject.name = "sample-admin"
include('base')

admin/build.gradle

group "sample.admin"
version "1"

project(":base") {
    apply plugin: 'java'
    sourceSets.main.java.srcDirs += file("../src/main/java")
    sourceSets.main.resources.srcDirs += file("../src/main/resources")
}

admin/base/build.gradle

plugins {
    id 'application'
}

repositories {
    mavenCentral()
}

application {
    mainClass = 'demo.App'
}

当前IntelliJ IDEA显示

当前IntelliJ IDEA目录显示

解决方案

方法一:通过Gradle配置自动识别

修改admin/build.gradle,给admin项目本身应用Java插件,让IDEA自动识别其src目录结构:

group "sample.admin"
version "1"

// 为admin项目应用Java插件,使IDEA识别其src目录为源码根目录结构
apply plugin: 'java'

project(":base") {
    apply plugin: 'java'
    sourceSets.main.java.srcDirs += file("../src/main/java")
    sourceSets.main.resources.srcDirs += file("../src/main/resources")
}

修改完成后,点击IDEA右上角的Gradle同步按钮重新加载项目,此时admin/src会被识别为源码根目录,admin/src/main/java和admin/src/main/resources会呈现出与base/src/main(标记2)相同的样式,同时base项目会自动包含这些额外源码。

方法二:手动标记目录(无需修改Gradle)

如果不想调整Gradle配置,可直接在IDEA中手动设置:

  • 右键点击admin/src/main/java,选择 Mark Directory as -> Sources Root
  • 右键点击admin/src/main/resources,选择 Mark Directory as -> Resources Root
    操作完成后,目标目录会立即变成标记(2)的样式,且base项目的源码集已通过Gradle配置包含这些内容。

内容的提问来源于stack exchange,提问作者imy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 20:34:54