import org.jetbrains.kotlin.gradle.dsl.ExplicitApiMode import org.jetbrains.kotlin.gradle.tasks.KotlinCompile val pheeraiBomVersion: String by project val kotlinApiVersion: String by project val javaVersion = JavaVersion.VERSION_11 // TODO: Documentation // TODO: Source Jar // TODO: Doc Jar // TODO: Proper Maven publish plugins { kotlin("jvm") `maven-publish` id("org.jetbrains.dokka") id("org.jetbrains.kotlinx.binary-compatibility-validator") } repositories { mavenCentral() google() exclusiveContent { forRepository { maven { url = uri("https://git.f3l.de/api/v4/projects/160/packages/maven") } } filter { includeGroup("de.pheerai") includeGroup("de.pheerai.eap") } } } project.version = "0.0.6-SNAPSHOT" project.group = "de.pheerai.rcdb" java { targetCompatibility = javaVersion sourceCompatibility = javaVersion withSourcesJar() } kotlin { explicitApi = ExplicitApiMode.Strict } dependencies { implementation(platform("de.pheerai:kotlin-crawler-app-bom:$pheeraiBomVersion")) testImplementation("io.kotest", "kotest-runner-junit5-jvm") testImplementation("io.kotest", "kotest-assertions-core-jvm") } tasks { withType().configureEach { kotlinOptions { apiVersion = kotlinApiVersion languageVersion = kotlinApiVersion jvmTarget = javaVersion.toString() } } test { useJUnitPlatform() } val javadocJar by registering(Jar::class) { from("dokkaJavadoc") archiveClassifier.set("javadoc") } artifacts { archives(javadocJar) archives(jar) } } publishing { publications { create("QueryBuilder") { from(components["java"]) artifact(tasks["javadocJar"]) } repositories { maven { url = uri("https://git.f3l.de/api/v4/projects/180/packages/maven") name = "GitLab" credentials(HttpHeaderCredentials::class.java) { name = "Job-Token" value = System.getenv("CI_JOB_TOKEN") } authentication { create("header") } } } } }