美文网首页
gradle 基本常识

gradle 基本常识

作者: 浮若年华_Yang | 来源:发表于2020-09-27 14:25 被阅读0次

    在Android Studio的Terminal下敲gradlew -q app:dependencies 命令,可以查看所有支持库,用于检查冲突资源位置

    举例

    dependencies {
        compile 'com.android.support:appcompat-v7:22.2.1'
        compile ('com.android.support:design:22.2.1')
        compile 'com.shamanland:fonticon:0.1.8'
        androidTestCompile 'com.android.support:support-annotations:22.2.1'
        androidTestCompile 'com.android.support.test:runner:0.3'
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2')
    }
    
    debugApk - ## Internal use, do not manually configure ##
    +--- com.android.support:multidex:1.0.1
    +--- com.android.support:appcompat-v7:22.2.1
    |    \--- com.android.support:support-v4:22.2.1
    |         \--- com.android.support:support-annotations:22.2.1
    +--- com.android.support:design:22.2.1
    |    +--- com.android.support:appcompat-v7:22.2.1 (*)
    |    \--- com.android.support:support-v4:22.2.1 (*)
    \--- com.shamanland:fonticon:0.1.8
    

    仔细看上面的依赖,com.android.support:appcompat-v7:22.2.1 和com.android.support:design:22.2.1,有共同依赖一个com.android.support:support-v4:22.2.1库,且com.android.support:design:22.2.1 依赖于com.android.support:appcompat-v7:22.2.1,但从打印出的信息可以看出com.android.support:design:22.2.1 依赖两个库的信息被打了星号标记,这标记意思是忽略这两个依赖的意思,也就是说不去下载这两个库。
    从上面的两个例子来看,gradle对于需要多个版本的依赖库来说,一般只会下载你配置导入那个版本,如果没有手动导入,那就会下载所有模块依赖的最新版本那个库,面对多个模块依赖同一个库,每个模块不都会去下载该依赖库,而是下载一个该依赖库,共享给多个模块。
    修改配置为:

    dependencies {
        compile 'com.android.support:appcompat-v7:22.2.1'
        compile ('com.android.support:design:22.2.1')
                {
                    exclude group: 'com.android.support'
                }
        compile 'com.shamanland:fonticon:0.1.8'
        androidTestCompile 'com.android.support:support-annotations:22.2.1'
        androidTestCompile 'com.android.support.test:runner:0.3'
        androidTestCompile('com.android.support.test.espresso:espresso-core:2.2')
                {
                    exclude  group:'com.android.support.test'
                }
    }
    

    exclude: 作用是排除不需要的依赖库
    group 指定不需要的支持库

    相关文章

      网友评论

          本文标题:gradle 基本常识

          本文链接:https://www.haomeiwen.com/subject/khtluktx.html