Gradle基础到进阶——依赖管理和配置编译版本(四)

2021-09-22  本文已影响0人  Peakmain

资源库

Gradle中存储模块的地方叫做资源库

添加仓库依赖

image.png

依赖范围
官网:https://developer.android.google.cn/studio/build/dependencies

image.png
image.png

查看模块的依赖项

gradlew app:dependencies --configuration releaseRuntimeClasspath

Gradle的依赖优化

既然Gradle已经自动做了这些优化,为何还会出现冲突?

排除传递依赖项

排除代码

    implementation ("androidx.room:room-runtime:2.3.0"){
        exclude group:'androidx.room', module:'room-common'
    }

结果


image.png
configurations{
    configuration{
        all*.exclude module: "kotlin-stdlib"
    }
}

example:


原本的结果.png

之后的结果


image.png
configurations.all {
    resolutionStrategy {
        force 'androidx.appcompat:appcompat:1.1.0'
    }
}

关于依赖传递

   implementation('com.squareup.retrofit2:retrofit2:2.3.0'){
       transitive false //关闭依赖传递,即内部的所有依赖将不会添加到编译时和运行时的类路径
       //force true //冲突时强制使用改版本
   }
默认情况.png
transitive设置false之后的结果.png

example:

配置编译版本

android{}

defaultConfig

productFlavors

    flavorDimensions "channel"//维度,针对一种类型产品风味的描述
    //自定义产品风味
    productFlavors{
        huawei{
            dimension 'channel'
        }
    }

结果如下

image.png
buildType

signingConfigs

    signingConfigs {
        release {
           //文件的位置
            storeFile file('/Users/zhouchengdong/peakmain/androidStudio/github/BasicUI/basicuUI.keystore')
            storePassword '123456'//密码
            keyAlias 'peakmain'//别名
            keyPassword '123456'//别名密码
        }
    }

resValue

    flavorDimensions "channel"//维度,针对一种类型产品风味的描述
    //自定义产品风味
    productFlavors{
        huawei{
            dimension 'channel'
            manifestPlaceholders = [CHANNEL_VALUE: 'huawei']
            resValue 'string','custom_name',"自定义名字"
        }
    }
image.png
buildConfigField

sourceSets

adbOptions

实战启用multiDex

为什么需要启用multiDex?

怎么启用?

implementation 'androidx.multidex:multidex:2.0.1'
上一篇下一篇

猜你喜欢

热点阅读