为了方便对不同版本或不同环境等等代码的管理有时候需要代码做一些分类, 把代码按照类型分别放在不同的文件夹进行管理.
为了让项目识别到添加的文件夹, 需要修改默认的相关路径配置

Android项目文件夹可配置项

  1. // 模块下build.gradle
  2. android{
  3. sourceSets {
  4. main {
  5. manifest.srcFile 'AndroidManifest.xml'
  6. java.srcDirs = ['src']
  7. resources.srcDirs = ['src']
  8. aidl.srcDirs = ['src']
  9. renderscript.srcDirs = ['src']
  10. res.srcDirs = ['res']
  11. assets.srcDirs = ['assets']
  12. jniLibs.srcDirs = ['libs']
  13. }
  14. }
  15. }
  16. // 配置示例
  17. android {
  18. sourceSets {
  19. main {
  20. def javaDirs = [
  21. "$projectDir/src/main/java",
  22. "$projectDir/src/code/title/java"
  23. ]
  24. def resDirs = [
  25. "$projectDir/src/main/res",
  26. "$projectDir/src/code/title/res"
  27. ]
  28. java.srcDirs = javaDirs
  29. res.srcDirs = resDirs
  30. }
  31. }
  32. }

多版本配置

  1. // 模块下build.gradle内的android下
  2. productFlavors {
  3. // temp 版本
  4. temp {
  5. applicationId "com.emao.taochemao.home.debug"
  6. manifestPlaceholders = [app_name: "xxxx", icon: "@mipmap/ic_launcher_xxxx"
  7. resValue("string", "baseUrl", "xxxxxxx")
  8. sourceSets {
  9. main {
  10. manifest.srcFile 'AndroidManifest.xml'
  11. java.srcDirs = ['src']
  12. resources.srcDirs = ['src']
  13. aidl.srcDirs = ['src']
  14. renderscript.srcDirs = ['src']
  15. res.srcDirs = ['res']
  16. assets.srcDirs = ['assets']
  17. jniLibs.srcDirs = ['libs']
  18. }
  19. }
  20. }
  21. // debug 版本
  22. debug {
  23. applicationId "com.emao.taochemao.home.debug"
  24. sourceSets {
  25. main {
  26. manifest.srcFile './debug/AndroidManifest.xml'
  27. }
  28. }
  29. }
  30. }

统一编译配置

  1. // 项目根目录build.gradle
  2. subprojects {
  3. afterEvaluate {
  4. project ->
  5. if (project.hasProperty("android")) {
  6. android {
  7. compileSdkVersion = rootProject.ext.android.compileSdkVersion
  8. buildToolsVersion = rootProject.ext.android.buildToolsVersion
  9. }
  10. }
  11. }
  12. }

添加代码/资源目录

  1. // 配置示例
  2. android {
  3. sourceSets {
  4. main {
  5. def javaDirs = [
  6. "$projectDir/src/main/java",
  7. "$projectDir/src/code/title/java"
  8. ]
  9. def resDirs = [
  10. "$projectDir/src/main/res",
  11. "$projectDir/src/code/title/res"
  12. ]
  13. java.srcDirs = javaDirs
  14. res.srcDirs = resDirs
  15. }
  16. }
  17. }