kotlin-crawler-app-bom/build.gradle.kts

93 lines
2.2 KiB
Text

buildscript {
extra.apply {
set("coroutinesVersion", "1.5.0")
set("kotlinVersion", "1.5.20")
}
}
plugins {
`java-platform`
`maven-publish`
}
group = "de.pheerai"
version = "0.0.5-SNAPSHOT"
repositories {
mavenCentral()
google()
}
javaPlatform {
allowDependencies()
}
dependencies {
api(platform("org.jetbrains.kotlin:kotlin-bom:${getFromExtra<String>("kotlinVersion")}"))
api(platform("org.jetbrains.kotlinx:kotlinx-coroutines-bom:${getFromExtra<String>("coroutinesVersion")}"))
api("org.jetbrains.kotlinx", "kotlinx-coroutines-core")
api("org.jetbrains.kotlinx", "kotlinx-coroutines-core-jvm")
api("com.github.ajalt.clikt", "clikt") {
version { cliktConstraints() }
}
api("org.jsoup", "jsoup") {
version { jsoupConstraints() }
}
api("org.jetbrains.kotlinx", "kotlinx-html-jvm") {
version { kotlinxHtmlConstraints() }
}
api("io.kotest", "kotest-runner-junit5-jvm") {
version { kotestConstraints() }
}
api("io.kotest", "kotest-assertions-core-jvm") {
version { kotestConstraints() }
}
}
publishing {
publications {
create<MavenPublication>("CrawlerBom") {
from(components["javaPlatform"])
}
}
repositories {
maven {
url = uri("https://git.f3l.de/api/v4/projects/160/packages/maven")
name = "GitLab"
credentials(HttpHeaderCredentials::class.java) {
name = "Job-Token"
value = System.getenv("CI_JOB_TOKEN")
}
authentication {
create<HttpHeaderAuthentication>("header")
}
}
}
}
inline fun <reified T> getFromProperties(name: String): T = project.properties[name] as T
inline fun <reified T> getFromExtra(name: String): T = extra[name] as T
fun MutableVersionConstraint.kotestConstraints() {
prefer("4.6.0")
strictly("[4.3.0,5.0.0[")
}
fun MutableVersionConstraint.kotlinxHtmlConstraints() {
prefer("0.7.2")
strictly("[0.7.0,0.8.0[")
}
fun MutableVersionConstraint.jsoupConstraints() {
prefer("1.13.1")
strictly("[1.13.0,1.14.0[")
}
fun MutableVersionConstraint.cliktConstraints() {
prefer("3.2.0")
strictly("[3.0.0,4.0.0[")
}