Android项目中管理Gradle依赖项

模块化是应用程序开发中的一种技术,它允许我们将功能分离到独立的模块中。模块化应用程序为每个模块都有许多build.gradle文件。因此,我们需要管理其中的依赖项。目标是使依赖声明更加整洁和富有表现力。此外,简化库的维护。

我们将依赖于一个名为buildSrc的特殊模块。按照以下步骤操作:

1. 使用Kotlin DSL作为构建脚本,创建一个新的Android Studio项目。

2. 在项目的主文件夹中创建名为buildSrc的新文件夹。此文件夹将成为适应所有依赖项的模块。

3. 在buildSrc创建多个文件夹和文件,所以结构如下:

buildSrc
 ├── src
 │ └── main
 │ ─└── java
 │ ──└── Dependencies.kt
 ├── build.gradle.kts

4.在build.gradle.kts文件中添加Kotlin DSL插件:

plugins {
 `kotlin-dsl`
}
repositories { 
 jcenter()
}

5.通过执行Gradle同步来激活插件。

6.接下来在Dependencies.kt文件中,我们将所有依赖项及其版本声明为多个对象。我们还可以按类型对对象进行分组。这样代码看起来更整洁。例如:

private const val kotlinVersion = "1.3.31"
private const val androidGradleVersion = "3.4.0"

//support libs
private const val appcompatVersion = "1.0.0"
private const val constraintLayoutVersion = "1.1.3"

//test libs
private const val junitVersion = "4.12"
private const val runnerVersion = "1.1.0"
private const val espressoVersion = "3.1.0"

object Dependencies{
    object Android {
        val minSdkVersion = 21
        val targetSdkVersion = 28
        val compileSdkVersion = 28
        val applicationId = "com.dicoding.app"
        val versionCode = 1
        val versionName = "0.1"
    }
    object Kotlin{
        val kotlin_std = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"
    }

    object BuildPlugins {
        const val androidGradle = "com.android.tools.build:gradle:$androidGradleVersion"
        const val kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
    }
    object SupportLibs{
        val appcompat = "androidx.appcompat:appcompat:$appcompatVersion"
        val constraint_layout = "androidx.constraintlayout:constraintlayout:$constraintLayoutVersion"
    }
    object TestLibs{
        val junit = "junit:junit:$junitVersion"
        val espresso = "androidx.test.espresso:espresso-core:$espressoVersion"
        val runner = "androidx.test:runner:$runnerVersion"
    }
}

7.现在我们就可以在应用build.gradle中使用所需依赖项,例如:

implementation(Dependencies.Kotlin.kotlin_std)
implementation(Dependencies.SupportLibs.appcompat)
implementation(Dependencies.SupportLibs.constraint_layout)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值