如何在Kotlin DSL的子项目中重用依赖版本?



我有一个多模块Gradle项目,Kotlin DSL作为构建文件。在根build.gradle.kts的内部有根dependencies区,subprojects区有自己的dependencies区。我想创建一个变量,可以保持一些依赖的版本,并在build.gradle.kts的所有模块中使用。

build.gradle.kts看起来像:

buildscript {
// ...
}
plugins {
// ...
}
subprojects {
// repositories, plugins, tasks, etc.
dependencies {
implementation("com.fasterxml.jackson.core:jackson-databind:2.10.4")
}

子模块common-module/build.gradle.kts

dependencies {
implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-csv:2.10.4")
}

我想声明一个变量,并将这些依赖关系的版本分配为一个值,并且只在模块上重用它。比如implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-csv:${jacksonVersion}").

我该怎么做呢?

这个问题最现代的、类型安全的解决方案是使用版本目录。

  1. 更新Gradle到至少7.5.1.
  2. gradle/libs.versions.toml:
[versions]
jackson = "2.12.5"
[libraries]
jackson-databind = { module = "com.fasterxml.jackson:jackson-databind", version.ref = "jackson" }
jackson-dataformat-csv = { module = "com.fasterxml.jackson.dataformat:jackson-dataformat-csv", version.ref = "jackson" }
  1. 在所有子项目中添加implementation(libs.jackson.dataformat.csv)等依赖项

相关内容

  • 没有找到相关文章

最新更新