IntelliJ IDEA自动创建/重建Gradle Kotlin模块不需要的目录
我之前也踩过这个坑!在Windows 10 x64上用IntelliJ IDEA 2018.1.2搞Gradle+Kotlin项目时,每次新建模块都会自动生成一堆不需要的源集目录,删了还自动回来,确实头疼。给你几个亲测有效的解决办法:
解决办法1:通过Gradle构建脚本手动配置源集(最靠谱)
Gradle默认会按照「约定优于配置」的规则创建src/main/java、src/test/java这类目录,我们可以在构建脚本里明确指定自己需要的源集路径,覆盖默认行为,这样IDEA就不会自动生成多余目录了。
如果你用的是Groovy版本的build.gradle,添加这段配置:
sourceSets { main { kotlin { // 只保留你需要的Kotlin源目录 srcDirs = ['src/main/kotlin'] } java { // 不需要Java源目录就设为空数组 srcDirs = [] } } test { kotlin { srcDirs = ['src/test/kotlin'] } java { srcDirs = [] } } }
如果是Kotlin DSL的build.gradle.kts,用这段:
sourceSets { main { kotlin.srcDirs("src/main/kotlin") java.srcDirs(emptyList<String>()) } test { kotlin.srcDirs("src/test/kotlin") java.srcDirs(emptyList<String>()) } }
配置完后,点击IDEA右上角的「Sync Project with Gradle Files」按钮同步,之后多余的目录就不会自动重建了。
解决办法2:调整IDEA的Gradle同步设置
我们可以让IDEA停止自动为空白的内容根目录创建文件夹:
- 打开IDEA的设置面板(快捷键
Ctrl+Alt+S,或者通过File -> Settings打开) - 依次展开
Build, Execution, Deployment -> Build Tools -> Gradle - 在「Gradle projects」区域,找到并取消勾选Create directories for empty content roots automatically这个选项
- 另外,如果你不想让Gradle全权负责构建,可以把「Build and run using」和「Run tests using」改成
IntelliJ IDEA(不过这个会让IDEA用自己的构建系统,需要根据你的项目需求权衡)
解决办法3:创建模块时选择Empty模板
如果不想一开始就生成默认目录,创建模块的时候别选「Gradle」模板,而是选「Empty Module」:
- 右键项目 ->
New -> Module - 选择「Empty Module」,设置模块名称和路径
- 之后手动给这个模块添加Gradle配置(比如创建
build.gradle文件,在项目根目录的settings.gradle里添加模块引用)
这样就能完全自定义模块的目录结构,避免IDEA自动生成多余的源集目录。
内容的提问来源于stack exchange,提问作者Matthew Layton
相关产品推荐
相关产品推荐

