返回

极客谈Android Gradle:签名配置与依赖管理

Android


Android Gradle (二)签名配置和依赖管理

大家还记得上一篇文章中提到的buildSrc目录吗?它就是一个gradle的插件工程,这个工程非常重要,任何非产品级的代码都可以放到这个目录中,比如CI/CD文件、单元测试代码、lint脚本等。

Gradle的签名配置主要放在buildSrc目录中的build.gradle文件中的android属性中。由于涉及公司的安全问题,就不展开讲了。

接下来聊一下Gradle的依赖管理,一个Android项目通常会有几十个甚至是几百个依赖,比如对Dagger依赖、对OkHttp依赖、对ButterKnife依赖等,项目的依赖维护也是一个非常重要的知识点。

依赖管理

  • 在项目的根目录下新建settings.gradle文件,用于配置根工程的插件信息。
pluginManagement {
    repositories {
        gradlePluginPortal()
        google()
    }
}

dependencyResolutionManagement {
    repositories {
        gradlePluginPortal()
        google()
    }
    versionCatalogs {
        libs {
            from(files('../gradle/libs.versions.toml'))
        }
    }
}
  • 在项目工程中的build.gradle文件中的dependencies属性中配置各组件的依赖。
dependencies {
    implementation(libs.appcompat)
    implementation(libs.recyclerview)
    implementation(libs.constraintlayout)
}
  • Gradle提供了依赖版本锁定机制,可以再libs.versions.toml文件中进行设置。
[versions]
kotlin = '1.5.10'
appcompat = '1.4.0'
recyclerview = '1.2.0'
constraintlayout = '2.0.4'

依赖排除

有时候,项目中的某个库依赖了一个自己不需要的库,或者是两个库依赖了同一个库的不同版本。

  • 这种情况下,可以通过依赖排除机制进行排除。
dependencies {
    implementation(libs.butterknife) {
        exclude group: 'com.android.support'
    }
}
  • 从上面的代码可以看出,如果butterknife依赖了一个com.android.support的库,那么就会被排除掉。

好了,这篇文章就先聊到这里,欢迎关注我的博客,我是极客谈技术,我们下期见。