国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

asgradle配置參數(shù)

2019-11-08 00:28:15
字體:
供稿:網(wǎng)友

轉(zhuǎn)自: http://blog.csdn.net/xiaoyaoyou1212/article/details/50277555一、Gradle介紹 Gradle是一個高級構(gòu)建系統(tǒng)和構(gòu)建工具,允許通過插件自定義構(gòu)建邏輯。Gradle的實(shí)質(zhì)是配置腳本,執(zhí)行一種類型的配置腳本時就會創(chuàng)建一個關(guān)聯(lián)的對象,它由三種腳本類型構(gòu)成,分別是構(gòu)建腳本(Build Script)、初始化腳本(Init Script)及設(shè)置腳本(Settings Script),其對應(yīng)的三種代理對象分別是PRoject對象、Gradle對象及Settings對象。

二、Gradle基礎(chǔ)配置

Android Studio對應(yīng)工程目錄 Android Studio工程目錄settings.gradle文件介紹 該文件是全局的項(xiàng)目配置文件,里面主要聲明一些需要加入gradle的module。build.gradle文件介紹 該文件如果是面向工程的,一般用來存儲構(gòu)建腳本的版本來源及工程的倉庫來源,如下圖所示,指定的構(gòu)建工具版本是gradle1.2.3,該工具及全局工程的倉庫來源都是jcenter;buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.2.3' }}allprojects { repositories { jcenter() }}12345678910111213141234567891011121314

而如果該文件面向的是對應(yīng)的module,則一般指定的module類型,Android相關(guān)及依賴庫,如下圖所示為常用配置。

//module類型,常用的如:'com.android.application'、'com.android.library'、'java'、'maven'等。apply plugin: 'com.android.application'//Android常用配置android {    //編譯版本    compileSdkVersion 22    //構(gòu)建工具版本    buildToolsVersion "22.0.1"    //默認(rèn)配置    defaultConfig {        //應(yīng)用包名        applicationId 'com.xyy.example'        //最小版本        minSdkVersion 15        //目標(biāo)版本        targetSdkVersion 22        //應(yīng)用版本號        versionCode 1        //應(yīng)用版本名稱        versionName "1.0"        //是否允許dex文件超過65535大小,默認(rèn)打開        multiDexEnabled true    }    //指定編譯版本    compileOptions{        sourceCompatibility JavaVersion.VERSION_1_7        targetCompatibility JavaVersion.VERSION_1_7    }    //lint檢查配置,默認(rèn)關(guān)閉    lintOptions {        abortOnError false    }    //渠道指定    productFlavors {    }    //簽名配置    signingConfigs {        //調(diào)試版本        debug {            storeFile file('×.keystore')            storePassWord ×××            keyAlias ××××            keyPassword ×××        }        //發(fā)布版本        release {            //簽名文件目錄指定,相對于該module            storeFile file('×.keystore')            //簽名密碼            storePassword ×××            //Alias名稱            keyAlias ××××            //Alias密碼            keyPassword ×××            }    }    //構(gòu)建類型配置    buildTypes {        debug {            buildConfigField("boolean", "LOG_DEBUG", "true")            versionNameSuffix "debug"            minifyEnabled false            zipAlignEnabled false            shrinkResources false            signingConfig signingConfigs.debug        }        release {            //添加buildConfig配置字段,可以設(shè)置日志打印開關(guān)字段,方便發(fā)布時自動關(guān)閉打印日志            buildConfigField("boolean", "LOG_DEBUG", "false")            //在生成的release版本APK后綴中添加"release"字段            versionNameSuffix "release"            //是否混淆(特別注意:如果混淆文件未配置使用false)            minifyEnabled false            //是否支持Zip Align            zipAlignEnabled true            //是否清理無用資源            shrinkResources true            //混淆文件指定            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'            //簽名指定            signingConfig signingConfigs.release        }    }    //相關(guān)源路徑的設(shè)置    sourceSets{        main{            manifest.srcFile 'AndroidManifest.xml'            java.srcDirs = ['src']            resources.srcDirs = ['src']            aidl.srcDirs = ['src']            renderscript.srcDirs = ['src']            res.srcDirs = ['res']            assets.srcDirs = ['assets']            jniLibs.srcDirs = ['libs']        }    }}//依賴配置dependencies {    //本地依賴文件樹    compile fileTree(dir: 'libs', include: ['*.jar'])    //遠(yuǎn)程依賴    compile '...'    //遠(yuǎn)程編譯時依賴庫但不包含該庫,防止重復(fù)包含引起包沖突    provided '...'    //本地依賴文件    compile files('...')    //本地編譯時依賴文件,不包含該文件    provided files('...')    //本地依賴工程    compile project('...')}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115

4 gradle.properties文件介紹 該文件一般用來存儲工程范圍內(nèi)的全局屬性,而如果是與開發(fā)者個人相關(guān)且不便納入版本控制的屬性,則放到 $HOME/.gradle 下的 gradle.properties 文件,比如簽署app的密鑰等。

三、多渠道打包配置

1.在AndroidManifest.xml中設(shè)置PlaceHolder(占位符) 在application下添加

<meta-data    android:name="渠道名稱"    //渠道名稱,可以使用android:value="${變量名}",假如變量名為XYY_FLAVORS,下面使用該變量進(jìn)行說明    android:value="渠道ID"    />1234512345

2.在對應(yīng)module中的build.gradle文件中設(shè)置productFlavors(渠道信息) 首先在defaultConfig下設(shè)置默認(rèn)渠道

manifestPlaceholders = [XYY_FLAVORS: "渠道ID"]11

然后在android下指定需要打包的渠道信息

productFlavors {    渠道ID1 {}    渠道ID2 {}    渠道ID3 {}    渠道ID4 {}    ...}productFlavors.all {    flavor -> flavor.manifestPlaceholders = [XYY_FLAVORS: name]}1234567891012345678910

最后在buidTypes的release下指定發(fā)布時的渠道包名稱

applicationVariants.all {    variant -> variant.outputs.each {        output -> def outputFile = output.outputFile           if(outputFile != null && outputFile.name.endsWith(".apk")){                def fileName = "xyy_v${defaultConfig.versionName}_${variant.productFlavors[0].name}.apk"                output.outputFile = new File(outputFile.parent, fileName)            }    }}123456789123456789

3.使用assemble命令進(jìn)行打包 使用./gradlew assemble+productFlavor+buildType進(jìn)行打包,如: ./gradlew assembleBaiduRelease指定Baidu的release版本; ./gradlew assembleBaidu指定Baidu的release和debug版本; ./gradlew assembleRelease指定所有渠道的release版本; ./gradlew assemble指定所有渠道的release和debug版本。

四、Maven倉庫管理配置 1、本地配置,針對所有該用戶下所有工程 在$HOME/.gradle下添加init.gradle文件,這是Gradle初始化腳本,也是面向用戶的全局配置,配置如下:

allprojects{repositories {    def REPOSITORY_URL = '本地倉庫路徑'    //主要邏輯是判定如果是maven2及jcenter倉庫,都先執(zhí)行本地倉庫    all { ArtifactRepository repo ->        if(repo instanceof MavenArtifactRepository){            def url = repo.url.toString()            if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('https://jcenter.bintray.com/')) {                project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."                remove repo                }            }        }        maven {            url REPOSITORY_URL        }    }}123456789101112131415161718123456789101112131415161718

2、在對應(yīng)工程的build.gradle配置

allprojects {    repositories {        maven{            credentials{                username    '用戶名'                password    '密碼'            }            url '本地倉庫路徑'        }        //jcenter()        //mavenLocal()    }}1234567891011121312345678910111213

3、上傳代碼到本地倉庫配置 在需要上傳的module下的build.gradle中添加如下配置

apply   plugin:'maven'uploadArchives{    repositories{        mavenDeployer{            //指定groupId,在倉庫下展示為路徑com/xyy/example            pom.groupId = "com.xyy.example"            //指定版本號            pom.version = "1.0.0"            repository(url: "本地倉庫路徑"){                authentication(userName: 用戶名, password: 密碼)             }        }    }}12345678910111213141234567891011121314

五、自動化測試配置在需要進(jìn)行測試的module下的build.gradle文件中添加

apply from: '../config/quality.gradle'11

在工程下新建config文件夾,將如下路徑https://github.com/xiaoyaoyou1212/vb-android-app-quality/tree/master/config下的文件下載后放置到該文件夾下,再在該工程下使用gradle findbugs、gradle checkstyle、gradle lint及gradle pmd進(jìn)行代碼檢查,檢查的結(jié)果會在build下的reports文件夾下。

六、參考鏈接

Gradle插件用戶指南(譯)擁抱Gradle:下一代自動化工具Gradle腳本基礎(chǔ)全攻略
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 乌兰察布市| 德化县| 浑源县| 周至县| 阳原县| 盐源县| 铜川市| 磐安县| 桃源县| 八宿县| 梓潼县| 赤水市| 东方市| 淮南市| 紫云| 达日县| 三穗县| 林口县| 留坝县| 株洲县| 安国市| 勃利县| 福建省| 盐亭县| 英德市| 安义县| 陇川县| 响水县| 延庆县| 鱼台县| 肇源县| 肥东县| 敦煌市| 丹棱县| 松溪县| 开封县| 天台县| 峡江县| 会同县| 连云港市| 郴州市|