plugins { id("java") id("application") id("maven-publish") } group = "com.r35157.nenjim" version = project.findProperty("version") ?: "UNSET" if (version == "UNSET" && gradle.startParameter.taskNames.any { it.startsWith("publish") }) { throw GradleException("You must set -Pversion=... (use publish.sh / publishCICD.sh)") } application { mainClass.set("com.r35157.nenjim.kicker.impl.ref.Main") } repositories { mavenLocal() maven { name = "Artifacts" url = uri("/mnt/artifacts/java") // Failsafe for Android variant-aware deps + klassiske Maven-artefakter: metadataSources { gradleMetadata() // bevar .module for Android/AAR varianter mavenPom() artifact() } } mavenCentral() } dependencies { implementation(platform("org.apache.logging.log4j:log4j-bom:2.25.2")) implementation("org.apache.logging.log4j:log4j-api") runtimeOnly("org.apache.logging.log4j:log4j-core") compileOnly("org.jetbrains:annotations:26.0.2-1") implementation("com.r35157.nenjim:hubd-api:0.1-dev") implementation("com.r35157.nenjim:kicker-api:0.1-dev") } java { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } } tasks.withType { options.release.set(25) options.compilerArgs.add("--enable-preview") } val libsDir = layout.buildDirectory.dir("libs") tasks.register("prepareLibs") { group = "distribution" description = "Copies runtime deps to build/libs without deleting the app jar" val jarTask = tasks.named("jar") dependsOn(jarTask) into(libsDir) // Kun deps (transitivt) from(configurations.runtimeClasspath) // Bevar jar-filen som jar-tasken allerede har lagt i build/libs preserve { include(jarTask.get().archiveFileName.get()) } duplicatesStrategy = DuplicatesStrategy.EXCLUDE } publishing { publications { create("mavenJava") { from(components["java"]) } } repositories { maven { name = "Artifacts" url = uri("/mnt/artifacts/java") } } }