build.gradle 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  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. //====================Add below two line=============
  51. dexOptions {
  52. javaMaxHeapSize "4g" //specify the heap size for the dex process
  53. preDexLibraries = false //delete the already predexed libraries
  54. //是否支持大工程模式
  55. jumboMode = true
  56. }
  57. compileOptions {
  58. sourceCompatibility JavaVersion.VERSION_1_8
  59. targetCompatibility JavaVersion.VERSION_1_8
  60. }
  61. signingConfigs {
  62. config {
  63. storeFile file('C:/sigin/applicationsignname[20150409]')
  64. storePassword '13237658359'
  65. keyAlias 'jie-20150409'
  66. keyPassword '13237658359'
  67. }
  68. }
  69. compileSdkVersion rootProject.ext.android.compileSdkVersion
  70. buildToolsVersion rootProject.ext.android.buildToolsVersion
  71. defaultConfig {
  72. def versionNames = "v" + versionArray[0].toString().substring(0, 1) + "." + versionArray[0].toString().substring(1, 2) + "." + versionArray[0].toString().substring(2, 3)
  73. applicationId project.applicationId
  74. minSdkVersion rootProject.ext.android.minSdkVersion
  75. targetSdkVersion rootProject.ext.android.targetSdkVersion
  76. // versionCode rootProject.ext.android.versionCode
  77. // versionName rootProject.ext.android.versionName
  78. versionCode versionArray[1]
  79. versionName versionNames
  80. multiDexEnabled true
  81. signingConfig signingConfigs.config
  82. manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]
  83. ndk {
  84. abiFilters "armeabi", "armeabi-v7a", "x86", "mips", "x86_64", "mips64"
  85. }
  86. }
  87. useLibrary 'org.apache.http.legacy'
  88. lintOptions {
  89. checkReleaseBuilds false
  90. abortOnError false
  91. }
  92. packagingOptions {
  93. exclude 'META-INF/LICENSE.txt'
  94. exclude 'META-INF/NOTICE.txt'
  95. }
  96. buildTypes {
  97. release {
  98. minifyEnabled false
  99. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  100. signingConfig signingConfigs.config
  101. }
  102. debug {
  103. signingConfig signingConfigs.config
  104. }
  105. }
  106. productFlavors {
  107. wandoujia {}
  108. _360 {}
  109. baidu {}
  110. xiaomi {}
  111. tencent {}
  112. taobao {}
  113. }
  114. productFlavors.all {
  115. flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
  116. }
  117. /*applicationVariants.all { variant ->
  118. variant.outputs.each { output ->
  119. def outputFile = output.outputFile
  120. def fileName
  121. if (outputFile != null && outputFile.name.endsWith('.apk')) {
  122. if (variant.buildType.name.equals('release')) {
  123. //赋值app属性版本名
  124. //variant.mergedFlavor.versionName = getVersionName() + "_" + variant.productFlavors[0].name+"(Build"+currentVersionCode+")"
  125. //variant.mergedFlavor.versionName ="v"+versionArray[0].toString().substring(0,1)+"."+ versionArray[0].toString().substring(1,2)+"."+ versionArray[0].toString().substring(2,3)
  126. 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] + ")"
  127. fileName = "WeiChat_${releaseInfo}_release.apk"
  128. } else if (variant.buildType.name.equals('debug')) {
  129. //赋值app属性版本名
  130. variant.mergedFlavor.versionName = getVersionName() + "_" + releaseTime() + "_" + variant.productFlavors[0].name + "(Build" + versionArray[3] + ")" + "_debug"
  131. def debugInfo = getVersionName() + "_" + releaseTime() + "_" + variant.productFlavors[0].name + "(Build" + versionArray[3] + ")"
  132. fileName = "WeiChat_${debugInfo}_debug.apk"
  133. }
  134. output.outputFile = new File(outputFile.parent, fileName)
  135. }
  136. }
  137. }*/
  138. }
  139. repositories{
  140. flatDir {
  141. dirs 'libs'
  142. }
  143. }
  144. dependencies {
  145. compile fileTree(include: ['*.jar'], dir: 'libs')
  146. testCompile deps.junit
  147. compile deps.appcompatV7
  148. compile deps.design
  149. compile(deps.stetho) {
  150. force = true
  151. }
  152. compile deps.jodatime
  153. compile deps.systembartint
  154. compile deps.photoView
  155. compile deps.tagGroup
  156. compile deps.analytics
  157. compile deps.activityOnCrash
  158. compile deps.stickyListHeaders
  159. compile deps.stickyGridHeaders
  160. compile deps.materialDialogs
  161. compile deps.okhttp
  162. androidTestCompile deps.leakcanaryNp
  163. debugCompile deps.leakcanary
  164. releaseCompile deps.leakcanaryNp
  165. compile project(':common')
  166. compile project(':appmessages')
  167. compile project(':network')
  168. compile project(':imageload')
  169. compile project(':applogin')
  170. compile project(':apptasks')
  171. compile project(':appcontact')
  172. compile project(':appme')
  173. compile project(':appworks')
  174. compile project(':appbooking')
  175. compile project(':appmusic')
  176. compile project(':apputils')
  177. compile 'com.android.support.constraint:constraint-layout:1.0.2'
  178. compile 'com.android.support:support-v4:26.+'
  179. compile(name: 'autoupdatesdk-release', ext: 'aar')
  180. }
  181. buildscript {
  182. repositories {
  183. mavenCentral()
  184. }
  185. dependencies {
  186. classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.6.4'
  187. }
  188. }
  189. dexcount {
  190. format = "json"
  191. includeClasses = false
  192. includeFieldCount = true
  193. includeTotalMethodCount = false
  194. orderByMethodCount = false
  195. verbose = false
  196. maxTreeDepth = Integer.MAX_VALUE
  197. teamCityIntegration = false
  198. enableForInstantRun = false
  199. }