feat(dist): shaded jar aggregator
Bundles core + ecs + binding into a single shaded JAR via
com.gradleup.shadow. Regular jar stays enabled so composite builds
in examples/ can consume project(":dist") directly.
This commit is contained in:
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
# `:dist`
|
||||
|
||||
No source code. Aggregates `:core + :ecs + :binding` into one shaded JAR via
|
||||
`com.gradleup.shadow`.
|
||||
|
||||
```bash
|
||||
./gradlew :dist:shadowJar
|
||||
# → dist/build/libs/async-<version>.jar
|
||||
```
|
||||
|
||||
Drop that JAR in your Hytale server's `mods/` directory. That's the only
|
||||
artifact a consumer ever needs — the per-module split exists for testability
|
||||
and codebase hygiene, not deployment cherry-picking.
|
||||
Vendored
+26
@@ -0,0 +1,26 @@
|
||||
plugins {
|
||||
`java-library`
|
||||
alias(libs.plugins.shadow)
|
||||
}
|
||||
|
||||
dependencies {
|
||||
api(project(":core"))
|
||||
api(project(":ecs"))
|
||||
api(project(":binding"))
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain { languageVersion.set(JavaLanguageVersion.of(25)) }
|
||||
}
|
||||
|
||||
tasks.withType<JavaCompile>().configureEach { options.release.set(24) }
|
||||
|
||||
tasks {
|
||||
shadowJar {
|
||||
archiveBaseName.set("async")
|
||||
archiveClassifier.set("")
|
||||
mergeServiceFiles()
|
||||
}
|
||||
// Regular jar stays enabled so composite builds (examples/) can consume project(":dist") directly.
|
||||
build { dependsOn(shadowJar) }
|
||||
}
|
||||
Reference in New Issue
Block a user