plugins { kotlin("jvm") version "1.8.0" `maven-publish` } repositories { mavenCentral() } tasks.compileKotlin { kotlinOptions { jvmTarget = "17" freeCompilerArgs += "-opt-in=kotlin.RequiresOptIn" freeCompilerArgs += "-Xjvm-default=all" } } val projectGroup: String by project val projectVersion: String by project val specifyKotlinAsDependency: String by project val fastutilVersion: String by project dependencies { testImplementation("org.jetbrains.kotlin:kotlin-test") implementation("it.unimi.dsi:fastutil:$fastutilVersion") } tasks { create("sourceJar", org.gradle.jvm.tasks.Jar::class.java) { archiveClassifier.set("sources") from(sourceSets.main.get().allSource) } } version = projectVersion group = projectGroup subprojects { apply(plugin = "maven-publish") apply(plugin = "kotlin") group = projectGroup version = projectVersion tasks.compileKotlin { kotlinOptions { jvmTarget = "17" freeCompilerArgs += "-opt-in=kotlin.RequiresOptIn" freeCompilerArgs += "-Xjvm-default=all" } } tasks { create("sourceJar", org.gradle.jvm.tasks.Jar::class.java) { archiveClassifier.set("sources") from(sourceSets.main.get().allSource) } } kotlin { jvmToolchain(17) } tasks.test { useJUnitPlatform() } publishing { repositories { maven { url = uri("sftp://maven@dbotthepony.ru:22/maven") credentials { val mavenUser: String by project val mavenPassword: String by project username = mavenUser password = mavenPassword } } } } } publishing { publications { create("mavenJava") { from(components["java"]) artifact(tasks["sourceJar"]) pom { dependencies { if (specifyKotlinAsDependency.toBoolean()) implementation(kotlin("stdlib")) implementation("it.unimi.dsi:fastutil:[8.0,)") } } } } repositories { maven { url = uri("sftp://maven@dbotthepony.ru:22/maven") credentials { val mavenUser: String by project val mavenPassword: String by project username = mavenUser password = mavenPassword } } } }