Abschließendes Mini-Projekt
Abschlussübung
Abschließendes Mini-Projekt
Diese Abschlussübung lässt Sie den kompletten Einsteiger-Workflow wiederholen, ohne die früheren Lektionen Zeile für Zeile nachzulesen.
Erstellen und verteilen Sie eine winzige Aufgabe namens shape-workshop mit:
- einer Distribution namens
WS1 - mindestens zwei generierten Repositories
- einer platzhalterbasierten Vorlage
- einer
individualization.jsonmit zwei einfachen Variationsachsen - einer erfolgreichen echten Distribution
- einem verifizierten Ergebnis anhand von Zustandsdateien und Overview-Kommandos
Erfolgskriterien
Am Ende der Übung sollten Sie Folgendes haben:
- ein neues Origin-Repository
- eine konfigurierte Distribution
- eine funktionierende Individualisierungsdatei für
ShapeundColor - eine generierte
individuals.json - eine generierte
remotes.json - ein verifiziertes Remote-Ergebnis auf Ihrem GitLab-Ziel
Bevor Sie starten
Verwenden Sie den Host-Alias wieder, den Sie früher im Kurs konfiguriert haben.
Für die Übung brauchen Sie:
- eine GitLab-Gruppe oder einen Namespace, in dem Sie die neuen Repositories anlegen dürfen
- eine konkrete
groupIdfür dieses Ziel - mindestens einen echten Account, mit dem Sie die Mitgliederzuweisung testen können
Wenn Sie nur einen sicheren Test-Account haben, verwenden Sie ihn auf zwei Zeilen der Mitglieder-Eingabe — jede Zeile wird zu einer eigenen Gruppe mit eigenem generiertem Repository.
Bauen Sie eine minimale Aufgabe rund um die Platzhalter $Shape$ und $Color$.
Mögliche Variationswerte:
CircleSquareTriangle
Mögliche Farbwerte:
RedBlueGreen
Vorschlag für die Datei
Ihre Vorlage kann so klein sein wie diese — nehmen Sie die Platzhalter auch in den Dateinamen auf, zum Beispiel src/$Color$$Shape$.java:
public class $Color$$Shape$ {
public String label() {
return "$Color$ $Shape$";
}
}
Eine winzige README reicht.
Vorgeschlagene Arbeitsreihenfolge
Erledigen Sie Folgendes, ohne den früheren Lektionstext Zeile für Zeile zu kopieren:
- das Projektverzeichnis anlegen
divekit initmit dem DistributionsnamenWS1ausführen- eine winzige platzhalterbasierte Quelldatei erstellen
config.jsonprüfen: Sie sollte auf Ihren echten Host-Alias und Ihre echtegroupIdzeigen — das Standard-Namensmuster hält die UUID bereits sichtbar- mit
divekit devprüfen, welche Platzhalter noch Individualisierung brauchen, und das Grundgerüst dann mitdivekit dev --write-individualizationanlegen lassen individualization.jsonprüfen oder verfeinern: Sie sollteShapeundColorals Objekt-IDs enthalten, jeweils mit eigenenkindsdivekit deverneut ausführendivekit doctorausführen- das Test-Mitglied mit
divekit membersbereitstellen, oder es eingeben, wenndivekit distributedanach fragt - optional
divekit distribute -d WS1 --provider localausführen divekit distribute -d WS1ausführenindividuals.jsonundremotes.jsoninspizierendivekit overview -d WS1ausführen
Ihr Ergebnis verifizieren
Bevor Sie die Übung als erledigt markieren, verifizieren Sie alle folgenden Punkte:
divekit doctorzeigt kein blockierendes Setup-Problemdivekit devzeigt keine unaufgelösten Platzhalter, die Sie noch definieren müssen- falls Sie
divekit distribute -d WS1 --provider localverwendet haben, sah das generierte lokale Ergebnis korrekt aus divekit distribute -d WS1erstellt die erwarteten Repositoriesindividuals.jsonenthält jede UUID, die Sie geplant habenindividuals.jsonhält eine konkrete Wahl sowohl fürShapeals auch fürColorfestremotes.jsonhält jedes erstellte Remote-Repository fest- Ihr Test-Mitglied ist auf den erstellten Repositories in GitLab sichtbar
divekit overview -d WS1stimmt mit dem sichtbaren Ergebnis in GitLab überein
Wenn einer dieser Checks fehlschlägt, fangen Sie nicht sofort von vorn an. Verwenden Sie die Troubleshooting-Reihenfolge aus der vorherigen Lektion wieder.
Check
config.json und individualization.json sind die Dateien, die Sie prüfen und bearbeiten, um den Rollout zu definieren. Zustandsdateien wie individuals.json und remotes.json werden von Divekit generiert und halten fest, was der Rollout tatsächlich produziert hat.
divekit doctor ist oft die klarste Antwort, weil es blockierende Setup-Probleme vor dem echten Rollout aufdeckt. divekit dev gibt zusätzliche Sicherheit, indem es bestätigt, dass die Platzhalter vollständig definiert sind, und divekit distribute -d WS1 --provider local kann ein realistisches Ergebnis zeigen, ohne das echte GitLab-Ziel anzufassen.
individuals.json, wenn die UUID mit dem falschen generierten Individual oder den falschen Variationsentscheidungen verknüpft zu sein scheint. Inspizieren Sie zuerst remotes.json, wenn das Problem ist, in welchem Remote-Repository diese UUID gelandet ist. In der Praxis ist der Blick in beide Dateien oft der schnellste Weg, die vollständige Zuordnung zu bestätigen.
Shape noch für Color unaufgelöste Platzhalter übrig sind.
Wenn alle Checks bestehen, haben Sie den Einsteigerkurs abgeschlossen: von einem einfachen Projektordner zu einer verifizierten, individualisierten Distribution.
Aufräumen
Die Übungs-Repositories haben ihren Zweck erfüllt — löschen Sie sie von der geteilten GitLab-Instanz:
divekit purge -d WS1
Divekit listet die Repositories in der Ziel-Gruppe, zeigt einen Löschplan und fragt nach Bestätigung.
Denken Sie an die Warnung aus der Troubleshooting-Lektion: Der Plan umfasst alles in der Ziel-Gruppe, nicht nur das, was diese Distribution erstellt hat. Lesen Sie ihn, bevor Sie bestätigen — listet er mehr als Ihre WS1-Übungs-Repositories, antworten Sie mit No und prüfen Sie, auf welche Gruppe Sie zielen.