通过修改SourceSets中的属性,可以指定需要被编译的源文件,不在指定路径下的源文件将会被排除(即不会被编译)。Gradle通过SourceSets实现了Java项目的目录布局定义。
SourceSets默认的目录结构是固定的Java标准项目目录布局结构:
android {
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
}
如果我们不想用默认的,可以重新指定,按如下方式就可以修改目录布局结构:
sourceSets {
main {
java {
srcDir 'src/java' // 指定源码目录
}
resources {
srcDir 'src/resources' //资源目录
}
}
}
针对debug与release模式下, 指定不同的Manifest文件:
sourceSets {
main {
if (isDebug.toBoolean()) {
manifest.srcFile 'src/main/debug/AndroidManifest.xml'
} else {
manifest.srcFile 'src/main/release/AndroidManifest.xml'
}
}
}
如果不想按照java标准提供的文件夹结构,可以通过以下方式重新指定:
sourceSets {
main {
java {
srcDir 'src/customJavaPath'
}
}
}