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

如何在Gradle构建脚本中修改Java源代码目录?

嘿,这个问题我熟!Gradle的灵活性刚好能解决这种非标准目录的需求,分两种常见场景给你讲明白:

1. 单个项目的源目录配置

Gradle的Java插件默认会找src/main/java(主源码)和src/test/java(测试源码),但你可以通过sourceSets块轻松修改这个规则。

比如你的主源码在custom-src/main,测试源码在custom-src/test,可以这么写:

plugins {
    id 'java'
}

sourceSets {
    main {
        java {
            // 替换默认的主源码目录
            srcDirs = ['custom-src/main']
            // 如果想保留默认目录+新增自定义目录,用srcDir(单数):
            // srcDir 'custom-src/main'
        }
        // 如果资源文件也不在标准的src/main/resources,同样配置
        resources {
            srcDirs = ['custom-resources/main']
        }
    }
    test {
        java {
            srcDirs = ['custom-src/test']
        }
    }
}

小提示:srcDirs会替换所有默认源目录,而srcDir是添加额外目录,根据你的需求选就行。

2. 多模块项目的全局配置

如果是多模块项目,想给所有子模块统一设置非标准源目录,可以在根项目的build.gradle里用subprojects块:

subprojects {
    apply plugin: 'java'

    sourceSets {
        main {
            java {
                srcDirs = ['../shared-src/main', 'src/custom-main']
            }
        }
        test {
            java {
                srcDirs = ['../shared-src/test', 'src/custom-test']
            }
        }
    }
}
如果你用Kotlin DSL(build.gradle.kts)

语法稍有不同,但逻辑一致:

plugins {
    java
}

sourceSets {
    main {
        java.srcDirs("custom-src/main")
        // 添加目录的话:java.srcDir("custom-src/main")
    }
    test {
        java.srcDirs("custom-src/test")
    }
}
验证配置是否生效

不确定配置对不对?运行这个命令就能看到当前所有源目录的详细信息:

gradle sourceSets

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:18:08