build.gradle 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  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.txt'
  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.cardviewV7
  137. compile deps.design
  138. compile(deps.stetho) {
  139. force = true
  140. }
  141. compile deps.jodatime
  142. compile deps.systembartint
  143. compile deps.photoView
  144. compile deps.tagGroup
  145. compile deps.analytics
  146. compile deps.activityOnCrash
  147. compile deps.stickyListHeaders
  148. compile deps.stickyGridHeaders
  149. compile deps.materialDialogs
  150. compile deps.okhttp
  151. androidTestCompile deps.leakcanaryNp
  152. debugCompile deps.leakcanary
  153. releaseCompile deps.leakcanaryNp
  154. //project
  155. compile project(':common')
  156. compile project(':appmessages')
  157. compile project(':network')
  158. compile project(':imageload')
  159. compile project(':applogin')
  160. compile project(':apptasks')
  161. compile project(':appcontact')
  162. compile project(':appme')
  163. compile project(':appworks')
  164. compile project(':appbooking')
  165. compile project(':android-pdf-viewer')
  166. compile project(':apputils')
  167. }
  168. buildscript {
  169. repositories {
  170. mavenCentral()
  171. }
  172. dependencies {
  173. classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.6.4'
  174. }
  175. }
  176. dexcount {
  177. format = "json"
  178. includeClasses = false
  179. includeFieldCount = true
  180. includeTotalMethodCount = false
  181. orderByMethodCount = false
  182. verbose = false
  183. maxTreeDepth = Integer.MAX_VALUE
  184. teamCityIntegration = false
  185. enableForInstantRun = false
  186. }