现在大多数人说对于多模块应用程序最好使用buildSrc以确保某些模块中没有任何硬编码的相同依赖项。
但是,如果我将所有依赖项保留在这个 buildSrc 文件夹中,我就会失去在 Android Studio 的帮助下使这些依赖项保持最新的功能(在 .gradle 文件中出现黄色警告)。
有些人建议使用一些插件,但他们说“好吧,这个库有一个新版本”,然后您需要将所有新版本输入到此 buildSrc 文件夹内的 .kt 文件中。有没有更简单的方法来实现这一目标?
我最终对倾向于从频繁更新中受益的特定库采取了混合方法,并且在声明常用库的 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)
}