为了方便对不同版本或不同环境等等代码的管理有时候需要代码做一些分类, 把代码按照类型分别放在不同的文件夹进行管理.
为了让项目识别到添加的文件夹, 需要修改默认的相关路径配置
Android项目文件夹可配置项
// 模块下build.gradle
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']
}
}
}
// 配置示例
android {
sourceSets {
main {
def javaDirs = [
"$projectDir/src/main/java",
"$projectDir/src/code/title/java"
]
def resDirs = [
"$projectDir/src/main/res",
"$projectDir/src/code/title/res"
]
java.srcDirs = javaDirs
res.srcDirs = resDirs
}
}
}
多版本配置
// 模块下build.gradle内的android下
productFlavors {
// temp 版本
temp {
applicationId "com.emao.taochemao.home.debug"
manifestPlaceholders = [app_name: "xxxx", icon: "@mipmap/ic_launcher_xxxx"
resValue("string", "baseUrl", "xxxxxxx")
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']
}
}
}
// debug 版本
debug {
applicationId "com.emao.taochemao.home.debug"
sourceSets {
main {
manifest.srcFile './debug/AndroidManifest.xml'
}
}
}
}
统一编译配置
// 项目根目录build.gradle
subprojects {
afterEvaluate {
project ->
if (project.hasProperty("android")) {
android {
compileSdkVersion = rootProject.ext.android.compileSdkVersion
buildToolsVersion = rootProject.ext.android.buildToolsVersion
}
}
}
}
添加代码/资源目录
// 配置示例
android {
sourceSets {
main {
def javaDirs = [
"$projectDir/src/main/java",
"$projectDir/src/code/title/java"
]
def resDirs = [
"$projectDir/src/main/res",
"$projectDir/src/code/title/res"
]
java.srcDirs = javaDirs
res.srcDirs = resDirs
}
}
}