build.gradle 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. apply plugin: 'com.android.application'
  2. apply plugin: 'com.getkeepsafe.dexcount'
  3. apply plugin: 'me.tatarka.retrolambda'
  4. //定义时间
  5. def releaseTime() {
  6. return new Date().format("yyyyMMdd.HHmm.ss")
  7. }
  8. //设置发布的显示的版本号
  9. def getVersionName() {
  10. return rootProject.ext.android.versionName
  11. }
  12. //读取版本号
  13. def getVersionCode() {
  14. def versionFile = file('version.properties')
  15. if (versionFile.canRead()) {
  16. Properties versionProps = new Properties()
  17. versionProps.load(new FileInputStream(versionFile))
  18. def versionCode = versionProps['versionCode'].toInteger()
  19. def runTasks = gradle.startParameter.taskNames //仅在assembleRelease任务是增加版本号
  20. // if (':app:assembleRelease' in runTasks) {
  21. versionProps['versionCode'] = (++versionCode).toString()
  22. versionProps.store(versionFile.newWriter(), null)
  23. // }
  24. return versionCode
  25. } else {
  26. throw new GradleException("Could not find version.properties!")
  27. }
  28. }
  29. def currentVersionCode = getVersionCode()
  30. android {
  31. compileOptions {
  32. sourceCompatibility JavaVersion.VERSION_1_8
  33. targetCompatibility JavaVersion.VERSION_1_8
  34. }
  35. signingConfigs {
  36. config {
  37. storeFile file('C:/sigin/applicationsignname[20150409]')
  38. storePassword '13237658359'
  39. keyAlias 'jie-20150409'
  40. keyPassword '13237658359'
  41. }
  42. }
  43. compileSdkVersion rootProject.ext.android.compileSdkVersion
  44. buildToolsVersion rootProject.ext.android.buildToolsVersion
  45. defaultConfig {
  46. applicationId project.applicationId
  47. minSdkVersion rootProject.ext.android.minSdkVersion
  48. targetSdkVersion rootProject.ext.android.targetSdkVersion
  49. // versionCode rootProject.ext.android.versionCode
  50. versionCode currentVersionCode
  51. versionName rootProject.ext.android.versionName
  52. multiDexEnabled true
  53. signingConfig signingConfigs.config
  54. manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]
  55. ndk {
  56. abiFilters "armeabi", "armeabi-v7a", "x86", "mips", "x86_64", "mips64"
  57. }
  58. }
  59. useLibrary 'org.apache.http.legacy'
  60. lintOptions {
  61. checkReleaseBuilds false
  62. abortOnError false
  63. }
  64. packagingOptions {
  65. exclude 'META-INF/LICENSE.txt'
  66. exclude 'META-INF/NOTICE.txt'
  67. }
  68. buildTypes {
  69. release {
  70. minifyEnabled false
  71. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
  72. signingConfig signingConfigs.config
  73. }
  74. debug {
  75. signingConfig signingConfigs.config
  76. }
  77. }
  78. productFlavors {
  79. wandoujia {}
  80. _360 {}
  81. baidu {}
  82. xiaomi {}
  83. tencent {}
  84. taobao {}
  85. }
  86. productFlavors.all {
  87. flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
  88. }
  89. applicationVariants.all { variant ->
  90. variant.outputs.each { output ->
  91. def outputFile = output.outputFile
  92. def fileName
  93. if (outputFile != null && outputFile.name.endsWith('.apk')) {
  94. if (variant.buildType.name.equals('release')) {
  95. variant.mergedFlavor.versionName = getVersionName() + "_" + variant.productFlavors[0].name+"(Build"+currentVersionCode+")"
  96. fileName = "WeiChat_${variant.mergedFlavor.versionName}_release.apk"
  97. } else if (variant.buildType.name.equals('debug')) {
  98. variant.mergedFlavor.versionName = getVersionName() + "_" + releaseTime() + "_" + variant.productFlavors[0].name
  99. fileName = "WeiChat_${variant.mergedFlavor.versionName}_debug.apk"
  100. }
  101. output.outputFile = new File(outputFile.parent, fileName)
  102. }
  103. }
  104. }
  105. }
  106. dependencies {
  107. compile fileTree(include: ['*.jar'], dir: 'libs')
  108. testCompile deps.junit
  109. compile deps.appcompatV7
  110. compile deps.cardviewV7
  111. compile deps.design
  112. compile(deps.stetho) {
  113. force = true
  114. }
  115. compile deps.jodatime
  116. compile deps.systembartint
  117. compile deps.photoView
  118. compile deps.tagGroup
  119. compile deps.analytics
  120. compile deps.activityOnCrash
  121. compile deps.stickyListHeaders
  122. compile deps.stickyGridHeaders
  123. compile deps.materialDialogs
  124. compile deps.okhttp
  125. androidTestCompile deps.leakcanaryNp
  126. debugCompile deps.leakcanary
  127. releaseCompile deps.leakcanaryNp
  128. //project
  129. compile project(':common')
  130. compile project(':appmessages')
  131. compile project(':network')
  132. compile project(':imageload')
  133. compile project(':applogin')
  134. compile project(':apptasks')
  135. compile project(':appcontact')
  136. compile project(':appme')
  137. compile project(':appworks')
  138. compile project(":appbooking")
  139. compile project(':android-pdf-viewer')
  140. }
  141. buildscript {
  142. repositories {
  143. mavenCentral()
  144. }
  145. dependencies {
  146. classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.6.4'
  147. }
  148. }
  149. dexcount {
  150. format = "json"
  151. includeClasses = false
  152. includeFieldCount = true
  153. includeTotalMethodCount = false
  154. orderByMethodCount = false
  155. verbose = false
  156. maxTreeDepth = Integer.MAX_VALUE
  157. teamCityIntegration = false
  158. enableForInstantRun = false
  159. }