如何通过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显示

解决方案
方法一:通过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
相关产品推荐
相关产品推荐

