module.build.gradle 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. if (singleModule.toBoolean()) {
  2. // 作为独立app应用运行
  3. apply plugin: 'com.android.application'
  4. } else {
  5. // 作为组件运行
  6. apply plugin: 'com.android.library'
  7. }
  8. apply plugin: 'kotlin-android'
  9. // ARouter
  10. apply plugin: 'kotlin-kapt'
  11. /*序列化插件*/
  12. apply plugin: 'kotlin-parcelize'
  13. kapt {
  14. arguments {
  15. arg("AROUTER_MODULE_NAME", project.getName())
  16. }
  17. }
  18. def singleRun = singleModule.toBoolean()
  19. android {
  20. compileSdkVersion rootProject.ext.android.compileSdkVersion
  21. buildToolsVersion rootProject.ext.android.buildToolsVersion
  22. defaultConfig {
  23. // 如果是独立模块,则使用当前组件的包名
  24. if (singleRun) {
  25. applicationId rootProject.ext.android.applicationId
  26. }
  27. minSdkVersion rootProject.ext.android.minSdkVersion
  28. targetSdkVersion rootProject.ext.android.targetSdkVersion
  29. versionCode rootProject.ext.android.versionCode
  30. versionName rootProject.ext.android.versionName
  31. flavorDimensions "versionCode"
  32. testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
  33. vectorDrawables.useSupportLibrary = true
  34. multiDexEnabled true
  35. // 只保留指定和默认的资源
  36. resConfigs "zh"//去掉无用的国际语言
  37. ndk {
  38. abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
  39. }
  40. generatedDensities = []
  41. }
  42. buildTypes {
  43. debug {
  44. minifyEnabled false // 打开混淆
  45. shrinkResources false // 是否清理无用资源,依赖于minifyEnabled
  46. zipAlignEnabled false // 是否启用zipAlign压缩
  47. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  48. debuggable true
  49. }
  50. release {
  51. minifyEnabled false // 打开混淆
  52. shrinkResources false // 是否清理无用资源,依赖于minifyEnabled
  53. zipAlignEnabled false // 是否启用zipAlign压缩
  54. proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
  55. debuggable false
  56. }
  57. }
  58. compileOptions {
  59. sourceCompatibility JavaVersion.VERSION_1_8
  60. targetCompatibility JavaVersion.VERSION_1_8
  61. }
  62. kotlinOptions {
  63. jvmTarget = '1.8'
  64. }
  65. buildFeatures {
  66. dataBinding true
  67. }
  68. sourceSets {
  69. main {
  70. jniLibs.srcDirs = ['libs']
  71. if (singleRun) {
  72. // 如果是application,则 编译主目录下AndroidManifest.xml文件
  73. manifest.srcFile 'src/main/AndroidManifest.xml'
  74. } else {
  75. // 如果是library,合并到宿主,则 编译manifest目录下AndroidManifest.xml文件
  76. manifest.srcFile 'src/main/manifest/AndroidManifest.xml'
  77. resources {
  78. // 正式版本时,排除manifest文件夹下所有的调试文件
  79. exclude 'src/main/manifest/*'
  80. }
  81. }
  82. }
  83. }
  84. }
  85. dependencies {
  86. // 基类lib包
  87. implementation project(path: ':baselib')
  88. // ARtouter
  89. implementation(rootProject.ext.dependencies.arouter_api)
  90. kapt(rootProject.ext.dependencies.arouter_compiler)
  91. api(rootProject.ext.androidx.kotlin_lib)
  92. api(rootProject.ext.androidx.kotlin_core)
  93. api(rootProject.ext.androidx.appcompat)
  94. api(rootProject.ext.androidx.material)
  95. api(rootProject.ext.androidx.constraintlayout)
  96. testApi(rootProject.ext.androidx.junit)
  97. androidTestApi(rootProject.ext.androidx.runner)
  98. androidTestApi(rootProject.ext.androidx.espresso_core)
  99. api(rootProject.ext.dependencies.glide)
  100. kapt(rootProject.ext.dependencies.glide_compiler)
  101. }