build: add Maven wrapper and prebuilt release jar; ignore docs/superpowers

- Add ./mvnw wrapper (script-only) so the project builds/runs without a
  system Maven install.
- Add maven-shade-plugin producing a self-contained release/HauntedManor.jar
  (merges audio SPI services; no dependency-reduced-pom).
- Document running via ./mvnw and via the jar directly in the README.
- Ignore docs/superpowers/ (planning specs kept locally, untracked).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-02 09:51:04 +02:00
parent 675bf4c2ea
commit f8f7eb90f0
7 changed files with 544 additions and 6 deletions

View File

@@ -20,25 +20,43 @@ werden aus YAML-Dateien geladen, nicht im Code festverdrahtet.
## Voraussetzungen
- Java 25+
- Maven 3.9+
- Maven 3.9+ **oder** der mitgelieferte Maven Wrapper (`./mvnw`) damit ist
keine separate Maven-Installation nötig; der Wrapper lädt die passende
Maven-Version beim ersten Aufruf selbst herunter.
## Schnellstart ohne Maven
Im Ordner [`release/`](release/) liegt eine fertig gebaute, eigenständige JAR
(`HauntedManor.jar`) mit allen Abhängigkeiten. Sie braucht nur Java 25:
```bash
java -jar release/HauntedManor.jar # Konsolen-Version
java -cp release/HauntedManor.jar thb.jeanluc.adventure.AppGui # Swing-GUI
```
## Bauen und Testen
Mit dem Wrapper (empfohlen, keine Maven-Installation nötig) unter Windows
`mvnw.cmd` statt `./mvnw`:
```bash
mvn clean test # alle Tests ausführen (67 Tests)
mvn clean package # JAR bauen
./mvnw clean test # alle Tests ausführen (233 Tests)
./mvnw clean package # baut die eigenständige JAR nach release/HauntedManor.jar
```
Ein systemweit installiertes `mvn` funktioniert identisch (`mvn clean test` …).
## Spielen
Über die im `pom.xml` konfigurierten Run-Profile des `exec-maven-plugin`:
```bash
mvn exec:java@run # Konsolen-Version (thb.jeanluc.adventure.App)
mvn exec:java@gui # Swing-GUI (thb.jeanluc.adventure.AppGui)
./mvnw exec:java@run # Konsolen-Version (thb.jeanluc.adventure.App)
./mvnw exec:java@gui # Swing-GUI (thb.jeanluc.adventure.AppGui)
```
`mvn exec:java` ohne Profil startet ebenfalls die Konsolen-Version.
`./mvnw exec:java` ohne Profil startet ebenfalls die Konsolen-Version.
Alternativ direkt aus der gebauten JAR (siehe [Schnellstart](#schnellstart-ohne-maven)).
### Befehle im Spiel