Das offizielle Repository der Software-Challenge, welches aus Server, Client und Spiel-Plugins besteht.
Ordner | Beschreibung |
---|---|
helpers | Zusätzliche Tools (z.B. der TestClient) |
player | Simpleclient dieses Jahres |
plugin | Plugin dieses Jahres |
server | Spielserver |
socha-sdk | Projektübergreifend verwendete Klassen |
Als Build-Tool wird Gradle verwendet.
Das gesamte Projekt kann sofort nach dem checkout per ./gradlew build
gebaut werden, es ist keine Installation von Programmen nötig.
Die wichtigsten Tasks:
Task | Beschreibung |
---|---|
build |
baut alles, deployt und testet |
test |
führt tests aus |
deploy |
erstellt hochladbare ZIP-Pakete |
run oder testDeployed |
startet den server und 2 simpleclients und überpüft, ob das Spiel normal endet |
startServer oder :server:run |
führt den Server direkt vom Quellcode aus |
:server:startProduction |
startet den gepackten Server |
:player:run |
startet den SimpleClient direkt vom Sourcecode |
:test-client:run |
startet den Testclient |
Tasks der Subprojekte können in zwei Wegen aufgerufen werden:
./gradlew :server:run
führt die Task "run" des Subprojektes "server" aus.
Das gleiche kann auch erreicht werden, in dem man in das server-Verzeichnis
wechselt und dort ./gradlew run
ausführt.
Wenn notwendig, können bei der Ausführung eines Subprojektes via run
per -Dargs="Argument1 Argument2"
Argumente mitgegeben werden.
Zuerst sollte sichergestellt werden, dass die neuste Version von Intellij IDEA verwendet wird, da es ansonsten Probleme mit Kotlin geben kann.
In Intellij kann man das Projekt bequem von Gradle importieren, wodurch alle Module und Bibliotheken automatisch geladen werden. Dazu sind folgende Schritte notwendig:
- Projekt klonen
git clone git@github.com:CAU-Kiel-Tech-Inf/socha.git
- In IDEA auf "File" > "New" > "Project from existing sources" > socha Verzeichnis auswählen
- Import project from external model, Gradle auswählen
- Im folgenden Fenster:
- "Use auto-import" ankreuzen
- bei "Gradle JVM" JDK 8 auswählen, wenn sie nicht schon ausgewählt ist
- "Finish" drücken
- Warten, bis das Gradle build fertig ist
- Einmal im Terminal
git checkout .idea
ausführen, um sich die codeStyles zurückzuholen
Nun können Gradle tasks auch direkt in IDEA vom Gradle Tool Window (befindet sich normalerweise in der rechten Andockleiste) ausgeführt werden.
Ein Release kann durch dieses Command initiiert werden:
./gradlew release -Pv=X.X -Pdesc="Versionsbeschreibung"
-Pv
gibt die Version an, beginnend bei 0.0 - die Jahresnummer wird automatisch davorgesetzt-Pdesc
ist eine kurze Beschreibung der Version. Sie wird als Nachricht des Tags verwendet und im vorgeschlagenen Text für Ankündigungen auf verschiedenen Platformen eingefügt.
Dann wird die Version (in gradle.properties
) automatisch angepasst, ein commit gemacht,
git tag gesetzt und gepusht.
Im Anschluss gibt das Skript Hinweise, wie weiter zu verfahren ist.
siehe https://github.com/CAU-Kiel-Tech-Inf/socha-sysops/wiki/General-infrastructure#game-server