Slackbot
10/18/2023, 12:24 AMVampire
10/18/2023, 12:57 AMCan you use version catalogs for BOM imported dependencies?Of course. A version catalog is just what it says, a catalog. Libraries in it can be declared wihtout (or empty) version like when you do it in the build script directly, so tha the version can come from somewhere else like a BOM
Vampire
10/18/2023, 12:59 AMplatform(...).
It is an obsolete relict from times when Gradle did not have built-in BOM support and even its maintainer strongly recommends not to use it anymore but to use the built-in BOM support instead.
By now it does not really provide any added value anymore and does more harm than good.Jonathan Kupcho
10/18/2023, 1:07 AMdependencyManagement section like the other BOMs I'm using. Then, in the library just define the dependencies in the library without the versionVampire
10/18/2023, 1:09 AMdependencyManagement is Maven, not GradleVampire
10/18/2023, 1:10 AMVampire
10/18/2023, 1:14 AMdependencies {
implementation(platform(libs.build.kotlinx.serialization.bom))
implementation(libs.build.kotlinx.serialization.core)
implementation(libs.build.kotlinx.serialization.json)
}
and in the version catalog
[versions]
build-kotlinx-serialization = "1.5.1"
[libraries]
build-kotlinx-serialization-bom = { module = "org.jetbrains.kotlinx:kotlinx-serialization-bom", version.ref = "build-kotlinx-serialization" }
build-kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core" }
build-kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json" }Jonathan Kupcho
10/18/2023, 1:34 AMVampire
10/18/2023, 1:36 AMJonathan Kupcho
10/18/2023, 1:36 AMJonathan Kupcho
10/18/2023, 1:37 AMJonathan Kupcho
10/18/2023, 1:37 AMVampire
10/18/2023, 1:37 AMVampire
10/18/2023, 1:38 AMthe one tricky thing i was running into was libraries that are annotation processors and need to be added at compile time, i.e. lombokBesides that I majorly dislike lombok, what should be tricky?
Jonathan Kupcho
10/18/2023, 1:38 AMVampire
10/18/2023, 1:38 AMVampire
10/18/2023, 1:39 AMannotationProcessor and compileOnly, not for implementationJonathan Kupcho
10/18/2023, 1:39 AMVampire
10/18/2023, 1:40 AMJonathan Kupcho
10/18/2023, 1:40 AMcompileOnly lombok.version
annotationProcessor lombok.version
vs.
compileOnly libs.lombok
annotationProcessor libs.lombokVampire
10/18/2023, 1:40 AMJonathan Kupcho
10/18/2023, 1:40 AMVampire
10/18/2023, 1:40 AMJonathan Kupcho
10/18/2023, 1:40 AMJonathan Kupcho
10/18/2023, 1:40 AMJonathan Kupcho
10/18/2023, 1:42 AMVampire
10/18/2023, 1:43 AMVampire
10/18/2023, 1:43 AMJonathan Kupcho
10/18/2023, 1:44 AMsettings.gradleVampire
10/18/2023, 1:47 AMVampire
10/18/2023, 1:48 AMJonathan Kupcho
10/18/2023, 1:50 AMmelix
10/18/2023, 7:45 AM