本篇为 Packman 项目开发总结系列的第一篇,这个系列主要介绍在开发 Packman 项目过程中所使用的新技术、遇到的问题及其解决办法。

Packman 的源代码地址为 https://github.com/TonnyL/Packman,每一篇文章所涉及的内容与源码对应参考更加方便。

依赖版本管理的历史发展

  1. 硬编码
  2. gradle ext 或 gradle.properties
  3. buildSrc 或 Composing Builds
  4. version catalogs

硬编码

// build.gradle (module)
dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib:1.8.20"
    implementation 'androidx.appcompat:appcompat:1.7.0-alpha01'
}

在项目只有一个模块(module)的情况下,直接将依赖版本硬编码是可行的。硬编码方式:

👍 使用简单;

👍 Android Studio 在依赖有更新版本时提示;

👎 不支持代码提示、补全、跳转(Groovy 脚本的问题);

👎 没有统一依赖版本,不利于维护(在多模块项目下尤其明显)。

gradle ext 或 gradle.properties

// build.gradle (project)
ext {
    versions = [
        kotlin_version: "1.8.20",
        appcompat     : "1.7.0-alpha01"
    ]

    libs = [
        kotlin_stdlib: "org.jetbrains.kotlin:kotlin-stdlib:${versions.kotlin_version}",
        appcompat:"androidx.appcompat:appcompat:${versions.appcompat}"
    ]
}

// build.gradle (module)
dependencies {
    implementation libs.kotlin_stdlib
    implementation libs.appcompat
}