eclipse中gradle 打包配置


buildscript {       repositories {   mavenCentral()   }       dependencies {   classpath 'com.android.tools.build:gradle:1.0.+'   }   }       apply plugin: 'android'       dependencies {   compile fileTree( dir: 'libs', include: ['*.jar'])   compile 'com.android.support:support-v4:+'   //下面的是添加Eclipse的依賴工程   compile project( ':HorizontalVariableListView-master')   compile project( ':ListView_animotion/library')   compile project( ':MultiprocessPreferences-master')   compile project( ':PinterestLikeAdapterView-master')   }       android {       compileSdkVersion 19   buildToolsVersion "19.1.0"       packagingOptions {   exclude 'META-INF/DEPENDENCIES'   exclude 'META-INF/notice.txt'   exclude 'META-INF/LICENSE.txt'   exclude 'META-INF/MANIFEST.MF'   exclude 'META-INF/LICENSE'   exclude 'META-INF/NOTICE'   }       defaultConfig {   minSdkVersion 10   targetSdkVersion 20   }       sourceSets {   main {   manifest .srcFile 'AndroidManifest.xml'   java .srcDirs = ['src']   resources .srcDirs = ['src']   aidl .srcDirs = ['src']   renderscript .srcDirs = ['src']   res .srcDirs = ['res']   assets .srcDirs = ['assets']   //下面選項是添加對native libs的編譯支持   jniLibs .srcDirs = ['libs']   }   }       lintOptions {   abortOnError false   checkReleaseBuilds false   }       signingConfigs {   release {   //輸入自己的keyStore以及keyAlias   storeFile file( "release.keystore")   storePassword STOREPASS   keyAlias 'xxxx'   keyPassword KEYPASS   }   }       buildTypes {   release {   signingConfig signingConfigs .release   minifyEnabled true   zipAlignEnabled true   //輸入自己的混淆文件   proguardFile 'proguard.txt'   }   }       productFlavors {   // Main android app markets   Mocha{}   Xiaomi{}   //添加pre是因為flavor命名不支持數字開頭,編譯的時候會做處理   pre360Channel{}   Baidu{}   Hiapk{}   pre91Channel{}   WanDouJia{}   Tencent{}   Anzhi{}   AppChina{}   }   }       tasks .withType(JavaCompile) {   options .encoding = "UTF-8"   }       import java.util.regex.Pattern   import java.util.regex.Matcher       //替換AndroidManifest.xml的UMENG_CHANNEL_VALUE字符串為渠道名稱 By Remex Huang   android .applicationVariants.all{ variant ->   variant .outputs.get(0).processManifest.doLast{       //之前這里用的copy{},我換成了文件操作,這樣可以在v1.11版本正常運行,並保持文件夾整潔   //${buildDir}是指./build文件夾   //${variant.dirName}是flavor/buildtype,例如GooglePlay/release,運行時會自動生成   //下面的路徑是類似這樣:./build/manifests/GooglePlay/release/AndroidManifest.xml       def channel;   def apkname = "";   if(variant.productFlavors[0].name.contains("_")){   def flavorNames = variant.productFlavors[0].name.split("_")   channel = flavorNames[0]   apkname = "_" + flavorNames[1]   } else {   channel = variant.productFlavors[0].name   if(!channel.contains("Mocha")){   apkname = "_" + channel   }   }       channel = channel.replaceAll("pre", "")   apkname = apkname.replaceAll("pre", "")       def manifestFile = "${buildDir}/intermediates/manifests/full/${variant.dirName}/AndroidManifest.xml"       //將字符串UMENG_CHANNEL_VALUE替換成flavor的名字   def updatedContent = new File(manifestFile).getText('UTF-8').replaceAll("MOCHA_CHANNEL", channel)   new File(manifestFile).write(updatedContent, 'UTF-8')       //獲取版本號   def patternVersionNumber = Pattern.compile("versionName=\"(\\d+)\\.(\\d+)\\.(\\d+)\"")   def manifestText = new File(manifestFile).getText()   def matcherVersionNumber = patternVersionNumber.matcher(manifestText)   matcherVersionNumber .find()   def majorVersion = Integer.parseInt(matcherVersionNumber.group(1))   def minorVersion = Integer.parseInt(matcherVersionNumber.group(2))   def pointVersion = Integer.parseInt(matcherVersionNumber.group(3))   def versionName = + majorVersion + "." + minorVersion + "." + pointVersion       //將此次flavor的AndroidManifest.xml文件指定為我們修改過的這個文件   variant .outputs.get(0).processResources.manifestFile = file("${buildDir}/intermediates/manifests/full/${variant.dirName}/AndroidManifest.xml")       println "******************/\n/\n/\n/\n/\n/\n"   println "buildType.name = " + variant.buildType.name   println "******************/\n/\n/\n/\n/\n/\n"   def apkName = "Mocha";   if (variant.buildType.name == "release") {   apkName += apkname + "_V" + versionName + ".apk";   //variant.outputFile = file("${buildDir}/outputs/mochapk/" + apkName)   // !! 這里需要自定義自己的輸出文件夾   variant .outputs.get(0).outputFile = file("/Users/tengfei/Documents/yunyao/code/mocha/apk/" + versionName + "/" + apkName)   } else {   apkName += apkname + "-SNAPSHOT.apk";   variant .outputs.get(0).outputFile = file("${buildDir}/outputs/apk/" + apkName)   }   }   }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM