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
This commit is contained in:
Matthias Guillitte
2025-11-12 15:28:43 +01:00
parent c44f31a8ea
commit 05a25ba761

View File

@@ -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<Jar>("jarStep1") {
manifest {
attributes["Main-Class"] = "step1.Main"
}
archiveBaseName.set("step1")
from(sourceSets["step1"].output)
dependsOn("classes")
}
tasks.register<Jar>("jarStep2") {
manifest {
attributes["Main-Class"] = "step2.Main"
}
archiveBaseName.set("step2")
from(sourceSets["step2"].output)
dependsOn("classes")
}
tasks.register<Jar>("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"