diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2022-03-07 11:55:08 +0100 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2022-04-04 12:48:04 +0200 |
| commit | d25d413415b2c429febe14fd2c34d06fd02615b5 (patch) | |
| tree | cdcb010bc2f9ec1c11eb42348f01c3773e00fb6e | |
| parent | 6021aa4278bebb34bf5603ead4b5daeabcdc4c19 (diff) | |
build: Move build dependencies into version catalog
This change moves build dependencies used by Gradle into the version catalog
to ensure a single location for all dependency versions.
| -rw-r--r-- | buildSrc/build.gradle.kts | 13 | ||||
| -rw-r--r-- | buildSrc/settings.gradle.kts | 10 | ||||
| -rw-r--r-- | buildSrc/src/main/kotlin/Libs.kt | 10 | ||||
| -rw-r--r-- | gradle/libs.versions.toml | 18 | ||||
| -rw-r--r-- | settings.gradle.kts | 1 |
5 files changed, 33 insertions, 19 deletions
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 760f0cab..1b24b44b 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -31,10 +31,11 @@ repositories { } dependencies { - implementation(kotlin("gradle-plugin", version = "1.6.10")) - implementation("org.jlleitschuh.gradle:ktlint-gradle:10.2.1") - implementation("org.jetbrains.kotlin:kotlin-allopen:1.6.10") - implementation("me.champeau.jmh:jmh-gradle-plugin:0.6.6") - implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.6.10") - implementation("gradle.plugin.com.github.johnrengelman:shadow:7.1.2") + implementation(libs.kotlin.gradle) + implementation(libs.kotlin.allopen) + implementation(libs.kotlin.noarg) + implementation(libs.ktlint.gradle) + implementation(libs.jmh.gradle) + implementation(libs.dokka.gradle) + implementation(libs.shadow) } diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts index c9f9ab38..746d38f1 100644 --- a/buildSrc/settings.gradle.kts +++ b/buildSrc/settings.gradle.kts @@ -20,4 +20,12 @@ * SOFTWARE. */ -/* Intentionally left blank */ +enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") + +dependencyResolutionManagement { + versionCatalogs { + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } +} diff --git a/buildSrc/src/main/kotlin/Libs.kt b/buildSrc/src/main/kotlin/Libs.kt index f538b1ad..6a73e1b9 100644 --- a/buildSrc/src/main/kotlin/Libs.kt +++ b/buildSrc/src/main/kotlin/Libs.kt @@ -26,14 +26,12 @@ import org.gradle.api.JavaVersion import org.gradle.api.Project import org.gradle.api.artifacts.VersionCatalogsExtension import org.gradle.kotlin.dsl.getByType -import kotlin.properties.ReadOnlyProperty /** * This class makes the version catalog accessible for the build scripts until Gradle adds support for it. * * See https://github.com/gradle/gradle/issues/15383 */ -@Suppress("UnstableApiUsage") public class Libs(project: Project) { /** * The version catalog of the project. @@ -41,16 +39,10 @@ public class Libs(project: Project) { private val versionCatalog = project.extensions.getByType(VersionCatalogsExtension::class).named("libs") /** - * A delegate for obtaining configuration values from a [Project] instance. - */ - private fun lib(name: String? = null): ReadOnlyProperty<Libs, String> = - ReadOnlyProperty { _, property -> get(name ?: property.name) } - - /** * Obtain the version for the specified [dependency][name]. */ operator fun get(name: String): String { - val dep = versionCatalog.findDependency(name).get().get() + val dep = versionCatalog.findLibrary(name).get().get() return "${dep.module.group}:${dep.module.name}:${dep.versionConstraint.displayName}" } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5fe5cc33..a1251a1c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,25 +3,33 @@ classgraph = "4.8.138" clikt = "3.3.0" config = "1.4.1" commons-math3 = "3.6.1" +dokka = "1.6.10" hadoop = "3.3.1" jackson = "2.13.1" +jmh-gradle = "0.6.6" junit-jupiter = "5.8.2" junit-platform = "1.8.2" +kotlin = "1.6.10" kotlin-logging = "2.1.21" kotlinx-coroutines = "1.6.0" +ktlint-gradle = "10.2.1" ktor = "1.6.7" log4j = "2.17.1" mockk = "1.12.2" opentelemetry-main = "1.11.0" -opentelemetry-metrics = "1.10.1-alpha" -opentelemetry-semconv = "1.10.1-alpha" +opentelemetry-metrics = "1.11.0-alpha" +opentelemetry-semconv = "1.11.0-alpha" parquet = "1.12.2" progressbar = "0.9.2" sentry = "5.5.2" +shadow = "7.1.2" slf4j = "1.7.32" [libraries] # Kotlin +kotlin-gradle = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } +kotlin-allopen = { module = "org.jetbrains.kotlin:kotlin-allopen", version.ref = "kotlin" } +kotlin-noarg = { module = "org.jetbrains.kotlin:kotlin-noarg", version.ref = "kotlin" } kotlinx-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinx-coroutines" } # Logging @@ -68,3 +76,9 @@ classgraph = { module = "io.github.classgraph:classgraph", version.ref = "classg hadoop-common = { module = "org.apache.hadoop:hadoop-common", version.ref = "hadoop" } hadoop-mapreduce-client-core = { module = "org.apache.hadoop:hadoop-mapreduce-client-core", version.ref = "hadoop" } commons-math3 = { module = "org.apache.commons:commons-math3", version.ref = "commons-math3" } + +# Other (Build) +dokka-gradle = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "dokka" } +ktlint-gradle = { module = "org.jlleitschuh.gradle:ktlint-gradle", version.ref = "ktlint-gradle" } +jmh-gradle = { module = "me.champeau.jmh:jmh-gradle-plugin", version.ref = "jmh-gradle" } +shadow = { module = "gradle.plugin.com.github.johnrengelman:shadow", version.ref = "shadow" } diff --git a/settings.gradle.kts b/settings.gradle.kts index f518a984..73275387 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -61,5 +61,4 @@ include(":opendc-harness:opendc-harness-engine") include(":opendc-harness:opendc-harness-cli") include(":opendc-harness:opendc-harness-junit5") -enableFeaturePreview("VERSION_CATALOGS") enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") |
