gradle读取配置文件

2018-10-30 10:58:41

最近在导入一些开源项目的时候,发现配置文件的写法和自己平时写的不一样,平时是这样写的。


apply plugin: 'com.android.application'


android {

    compileSdkVersion 23

    buildToolsVersion "23.0.2"


    defaultConfig {

        applicationId "com.example.hecun.myapplication"

        minSdkVersion 15

        targetSdkVersion 23

        versionCode 1

        versionName "1.0"

    }

   ........

}


dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])

    testCompile 'junit:junit:4.12'

    compile 'com.android.support:appcompat-v7:23.2.1'

    compile 'com.android.support:design:23.2.1'

    compile 'com.nineoldandroids:library:2.4.0'

}


其实还有另外一种写法,有些项目中会这样写。


android {


    compileSdkVersion rootProject.ext.android.compileSdkVersion

    buildToolsVersion rootProject.ext.android.buildToolsVersion


    defaultConfig {

        applicationId rootProject.ext.android.applicationId

        minSdkVersion rootProject.ext.android.minSdkVersion

        targetSdkVersion rootProject.ext.android.targetSdkVersion

        versionCode rootProject.ext.android.versionCode

        versionName rootProject.ext.android.versionName

    }


........

}

dependencies {

    compile fileTree(dir: 'libs', include: ['*.jar'])

    compile project(":libraries:headsupcompat")

    compile project(":libraries:smooth-app-bar-layout")

    compile rootProject.ext.dependencies["design"]

    compile rootProject.ext.dependencies["appcompat-v7"]

    compile rootProject.ext.dependencies["recyclerview-v7"]

    compile rootProject.ext.dependencies["picasso"]

    compile rootProject.ext.dependencies["numberprogressbar"]

    compile rootProject.ext.dependencies["photoview"]

    compile rootProject.ext.dependencies["umeng-analytics"]

    compile rootProject.ext.dependencies["retrofit"]

    compile rootProject.ext.dependencies["rxandroid"]

    compile rootProject.ext.dependencies["okhttp-urlconnection"]

    compile rootProject.ext.dependencies["okhttp"]

    compile rootProject.ext.dependencies["butterknife"]

    compile rootProject.ext.dependencies["otto"]

    compile rootProject.ext.dependencies["glide"]

}



可以看到和我们写的不一样,应该是引用了某个地方的东西,我们去看看 



我们打开这个文件



ext {


    android = [compileSdkVersion: 22,

               buildToolsVersion: "22.0.1",

               applicationId    : "me.drakeet.meizhi",

               minSdkVersion    : 14,

               targetSdkVersion : 22,

               versionCode      : 359,

               versionName      : "2.5.9"]


    dependencies = ["appcompat-v7"        : "com.android.support:appcompat-v7:22.2.1",

                    "design"              : "com.android.support:design:22.2.1",

                    "recyclerview-v7"     : "com.android.support:recyclerview-v7:22.2.1",

                    "nineoldandroids"     : "com.nineoldandroids:library:2.4.0",

                    "picasso"             : "com.squareup.picasso:picasso:2.5.2",

                    "photoview"           : "com.github.chrisbanes.photoview:library:1.2.3",

                    "numberprogressbar"   : "com.daimajia.numberprogressbar:library:1.2@aar",

                    "umeng-analytics"     : "com.umeng.analytics:analytics:latest.integration",

                    "retrofit"            : "com.squareup.retrofit:retrofit:1.9.0",

                    "rxandroid"           : "io.reactivex:rxandroid:1.0.0",

                    "okhttp-urlconnection": "com.squareup.okhttp:okhttp-urlconnection:2.0.0",

                    "okhttp"              : "com.squareup.okhttp:okhttp:2.0.0",

                    "butterknife"         : "com.jakewharton:butterknife:7.0.1",

                    "otto"                : "com.squareup:otto:1.3.8",

                    "glide"               : "com.github.bumptech.glide:glide:3.6.1"]

}



注意,这时候需要在跟目录build.gradle中添加下面一句话


apply from: "config.gradle"


  • 2019-12-23 14:54:03

    RPC, REST ,GraphQL区别比较优劣

    其实在使用和学习的过程中,有很多文章都对比过它们的异同,但是大部分文章并没有从一个相对客观的角度来对比,更多是为了突显一个的优点而刻意指出另外一个的缺点。这让我想到一句话,脱离业务情景谈技术就是耍流氓。

  • 2019-12-23 23:38:59

    vue-apollo的多客户端的用法

    vue-apollo的多客户端的用法以及apollo.js的配置 关于如何安装和如何使用,这篇文章就先暂时不介绍了,如果不清楚就看我另一篇关于vue-apollo的用法 在做项目中,有时候后端的接口是按模块功能去划分的,那么请求的地址就会不同,关于vue-apollo的多客户端配置如下

  • 2019-12-27 08:40:55

    align-self和align-items的区别

    align-items在伸缩容器上使用它,伸缩容器内部所有的元素都一致地受制于align-items的值。 但是有些时候,我们希望伸缩容器内部某个元素在侧轴上的排列方式有所差异。此时就不能使用 align-items,因为align-items作用于整体。我们希望作用于部分。这就是align-self的发挥场地。

  • 2019-12-29 15:01:37

    修改laravel分页的样式

    首先获取到数据,paginate方法 能够自动判定当前页面正确的数量限制和偏移数。默认情况下,当前页数由HTTP 请求所带的 ?page 参数来决定。当然,该值由 Laravel 自动检测,并自动插入由分页器生成的链接。

  • 2019-12-29 15:05:57

    php 数组分页 array_slice()函数用法

    今天用到一个函数,非常好用,分享给大家 array_slice() -从数组中取出一段 也就是说用这个函数可以和sql语句一样实现分页,原理是将查询出的数组,取出从指定下标开始到指定长度的数组

  • 2019-12-30 10:17:21

    router-link传递参数,query

    在vue-router中,有两大对象被挂载到了实例this; $route(只读、具备信息的对象); $router(具备功能的函数) 查询字符串: 去哪里 ? <router-link :to="{name:'detail',query:{id:1}}"> xxx </router-link>