如何在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
相关产品推荐
相关产品推荐

