
com.freeletics.gradle.util.VersionCatalog.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of plugins Show documentation
Show all versions of plugins Show documentation
A set of reusable Gradle plugins
package com.freeletics.gradle.util
import org.gradle.api.JavaVersion
import org.gradle.api.Project
import org.gradle.api.artifacts.ExternalModuleDependencyBundle
import org.gradle.api.artifacts.MinimalExternalModuleDependency
import org.gradle.api.artifacts.VersionCatalog
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.api.artifacts.dsl.DependencyHandler
import org.gradle.api.provider.Provider
import org.gradle.jvm.toolchain.JavaLanguageVersion
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
private val Project.libs: VersionCatalog
get() = extensions.getByType(VersionCatalogsExtension::class.java).named("libs")
internal fun Project.getDependency(name: String): Provider {
return libs.findLibrary(name).orElseThrow { NoSuchElementException("Could not find library $name") }
}
internal fun Project.getDependencyOrNull(name: String): Provider? {
return libs.findLibrary(name).orElseGet { null }
}
internal fun Project.getVersion(name: String): String {
return getVersionOrNull(name) ?: throw NoSuchElementException("Could not find version $name")
}
internal fun Project.getVersionOrNull(name: String): String? {
return libs.findVersion(name).orElseGet { null }?.requiredVersion
}
internal fun Project.getBundleOrNull(name: String): Provider? {
return libs.findBundle(name).orElseGet { null }
}
internal fun DependencyHandler.addMaybe(name: String, dependency: Any?) {
if (dependency != null) {
add(name, dependency)
}
}
internal val Project.javaTarget: String
get() = getVersion("java-target")
internal val Project.javaTargetVersion: JavaVersion
get() = JavaVersion.toVersion(javaTarget)
internal val Project.jvmTarget: JvmTarget
get() = JvmTarget.fromTarget(javaTarget)
internal val Project.javaToolchainVersion: JavaLanguageVersion
get() = JavaLanguageVersion.of(getVersion("java-toolchain"))
© 2015 - 2025 Weber Informatics LLC | Privacy Policy