import org.jetbrains.kotlin.gradle.tasks.KotlinCompile buildscript { extra.apply { set("kotestVersion", "4.2.0") 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` } repositories { mavenCentral() } project.version = "0.0.2" project.group = "de.pheerai.rcdb" java { targetCompatibility = getFromExtra("javaVersion") sourceCompatibility = getFromExtra("javaVersion") } dependencies { implementation(kotlin("stdlib-jdk8")) testImplementation( group = "io.kotest", name = "kotest-runner-junit5-jvm", version = getFromExtra("kotestVersion") ) testImplementation( group = "io.kotest", name = "kotest-assertions-core-jvm", version = getFromExtra("kotestVersion") ) } tasks { withType().configureEach { kotlinOptions { // freeCompilerArgs = listOf("-XXLanguage:+InlineClasses") apiVersion = getFromExtra("kotlinApiVersion") languageVersion = getFromExtra("kotlinApiVersion") jvmTarget = getFromExtra("javaVersion").toString() } } test { useJUnitPlatform() } } publishing { publications { create("maven") { groupId = project.group as String artifactId = project.name version = project.version as String from(components["java"]) } } }