From 05a25ba7616a8dfd38d38a58e3a99346338bbe41 Mon Sep 17 00:00:00 2001 From: Matthias Guillitte Date: Wed, 12 Nov 2025 15:28:43 +0100 Subject: [PATCH] JAR files building Will build JAR for each 3 step separately when executing `gradlew build` or `gradlew jarStepX` where X is the step you want to export as JAR. The generated JARs are located in `build/libs`. To run a JAR, use `java -jar build/libs/stepX-1.0-SNAPSHOT.jar` where `X` is the step number --- build.gradle.kts | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index d65d34b..76c553e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,6 +2,55 @@ plugins { id("java") } +sourceSets { + create("common") { + java.srcDir("src/main/java/common") + } + + // Step1-3 each depend on common + create("step1") { + java.srcDirs("src/main/java/common", "src/main/java/step1") + } + create("step2") { + java.srcDirs("src/main/java/common", "src/main/java/step2") + } + create("step3") { + java.srcDirs("src/main/java/common", "src/main/java/step3") + } +} + +// === Create JAR tasks for each step === +tasks.register("jarStep1") { + manifest { + attributes["Main-Class"] = "step1.Main" + } + archiveBaseName.set("step1") + from(sourceSets["step1"].output) + dependsOn("classes") +} + +tasks.register("jarStep2") { + manifest { + attributes["Main-Class"] = "step2.Main" + } + archiveBaseName.set("step2") + from(sourceSets["step2"].output) + dependsOn("classes") +} + +tasks.register("jarStep3") { + manifest { + attributes["Main-Class"] = "step3.Main" + } + archiveBaseName.set("step3") + from(sourceSets["step3"].output) + dependsOn("classes") +} + +tasks.named("build") { + dependsOn("jarStep1", "jarStep2", "jarStep3") +} + group = "be.naaturel" version = "1.0-SNAPSHOT"