如何处理 KotlinDSL 和 buildSrc 的依赖更新问题?

问题描述 投票:0回答:1

现在大多数人说对于多模块应用程序最好使用buildSrc以确保某些模块中没有任何硬编码的相同依赖项。

但是,如果我将所有依赖项保留在这个 buildSrc 文件夹中,我就会失去在 Android Studio 的帮助下使这些依赖项保持最新的功能(在 .gradle 文件中出现黄色警告)。

有些人建议使用一些插件,但他们说“好吧,这个库有一个新版本”,然后您需要将所有新版本输入到此 buildSrc 文件夹内的 .kt 文件中。

有没有更简单的方法来实现这一目标?

android kotlin dependencies gradle-kotlin-dsl
1个回答
0
投票
我最初使用 buildSrc 配置设置我们的产品依赖项,并且对检查依赖项更新的替代方案(依赖项检查插件...等)不满意

我最终对倾向于从频繁更新中受益的特定库采取了混合方法,并且在声明常用库的 gradle 文件中的依赖项时仅使用

Versions 对象而不是 Dependency 对象:

原文:

object Dependencies { val roomKtx by lazy { "androidx.room:room-ktx:${Versions.room}" } val roomRuntime by lazy { "androidx.room:room-runtime:${Versions.room}" } val roomCompiler by lazy { "androidx.room:room-compiler:${Versions.room}" } val junit by lazy { "junit:junit:${Versions.junit}" } } object Versions { const val kotlinCompilerExtension = "1.5.2" const val dagger = "2.50" const val room = "2.6.1" const val junit = "4.13.2" } dependencies { implementation(Dependencies.roomKtx) implementation(Dependencies.roomRuntime) ksp(Dependencies.roomCompiler) testImplementation(Dependencies.junit) }
替代方案:

dependencies { implementation("androidx.room:room-ktx:${Versions.room}") implementation("androidx.room:room-runtime:${Versions.room}") ksp("androidx.room:room-compiler:${Versions.room}") testImplementation(Dependencies.junit) }
    
© www.soinside.com 2019 - 2024. All rights reserved.