import org.jetbrains.kotlin.gradle.dsl.ExplicitApiMode import org.jetbrains.kotlin.gradle.tasks.KotlinCompile buildscript { extra.apply { set("pheeraiBomVersion", "0.0.3-SNAPSHOT") set("kotlinApiVersion", "1.4") set("javaVersion", JavaVersion.VERSION_11) } } inline fun getFromExtra(prop: String) = project.extra[prop] as T // TODO: Documentation // TODO: Source Jar // TODO: Doc Jar // TODO: Proper Maven publish plugins { kotlin("jvm") `maven-publish` id("org.jetbrains.dokka") } repositories { mavenCentral() jcenter() google() maven { url = uri("https://git.f3l.de/api/v4/projects/160/packages/maven") mavenContent { includeGroup("de.pheerai") includeGroup("de.pheerai.eap") } } } project.version = "0.0.3-SNAPSHOT" project.group = "de.pheerai.rcdb" java { targetCompatibility = getFromExtra("javaVersion") sourceCompatibility = getFromExtra("javaVersion") withSourcesJar() } kotlin { explicitApi = ExplicitApiMode.Strict } dependencies { implementation(enforcedPlatform("de.pheerai:kotlin-crawler-app-bom:${getFromExtra("pheeraiBomVersion")}")) testImplementation("io.kotest", "kotest-runner-junit5-jvm") testImplementation("io.kotest", "kotest-assertions-core-jvm") } tasks { withType().configureEach { kotlinOptions { apiVersion = getFromExtra("kotlinApiVersion") languageVersion = getFromExtra("kotlinApiVersion") jvmTarget = getFromExtra("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") } } } } }