build.gradle 7.2 KB

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