diff --git a/dist/README.md b/dist/README.md new file mode 100644 index 0000000..5e0470d --- /dev/null +++ b/dist/README.md @@ -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-.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. diff --git a/dist/build.gradle.kts b/dist/build.gradle.kts new file mode 100644 index 0000000..8014d1c --- /dev/null +++ b/dist/build.gradle.kts @@ -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().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) } +}