Java Projekt und Artefakte
Man spricht oft von Modulen, Komponenten oder Artefakten.
Einleitung

In einem Beispielprojekt werden auf einer Karte verschiedene Objekte dargestellt. Beim Klick auf ein Objekt werden detaillierte Informationen angezeigt.
Das Projekt soll erweitert werden:
- Neu soll pro Objekt auch die Angabe von Koordinaten möglich sein.
- Weil verschiedene Koordinatensysteme existieren (z. B. WGS84, UTM, CH1903/LV03, CH1903+/LV95), soll eine Koordinaten‑Umrechnungs‑Komponente entwickelt werden.
- Diese Komponente muss als unabhängiges Modul/Artefakt verfügbar gemacht werden, damit sie in anderen Projekten wiederverwendbar ist.
Zielsetzung
- Verschiedene Ansätze zum Erstellen von Modulen/Komponenten/Artefakten in Java kennen und erklären können.
- Ein Modul/Artefakt erstellen und anderen zur Verfügung stellen (Repository).
- Ein Modul/Artefakt in ein Projekt einbinden können.
Aufgabe — Möglichkeiten ein Java Projekt zu modularisieren
- Lies das Begleitdokument Java Projekt modularisieren.
- Prüfe, ob die dortigen Informationen korrekt sind; ergänze und verifiziere mit weiteren Quellen.
- Merken Sie sich Ergänzungen für die spätere Diskussion im Plenum.
Input aus einem 'alten' Projekt

Welche Möglichkeiten für die Umsetzung des Zusammenbaus eines Projektes gibt es?
- Sammeln im Plenum
Ergebnissicherung
- Halten Sie die Ergebnisse der folgenden Aufgaben fest.
- Alle Aufgabe in nur einem Dokument dokumentieren.
- Jede Aufgabe muss mit Ihrem Titel in Ihrem Dokumente eindeutig identifizierbar sein.
- Abgabe als PDF Dokument
Aufgabe — Multi Module Maven Projekt und Git‑Submodul
- Sie erstellen zunächste ein Multi Module Maven Projekt und verwalten danach die Module als Git-Submodule
- Erstellen eines Multi Module Maven Projekt
Folgen Sie der Anleitung und erstellen Sie das Projekt.
MultiModuleMavenProject- Nun verwalten Sie aus dem Multi Module Projekt das Parent Projekt und das app_main Module in einem Git-Repository und das Module greeter_lib in einem eigenen Repo, integriert als Submodule im ersten Git-Repository.
Folgen Sie der Anleitung
GitSubmoduleMavenProject- Sichern Sie Ergebnisse mit Screenshots, die den Einsatz des Submoduls dokumentieren.(Was braucht es, damit man die Submodules verstehen kann? ZBsp Screenshot lokales Verzeichnis, Screenshot GitHub Repository, Screenshot Projektstruktur in der IDE, Screenshot Code mit Aufruf der Submodul Methode, Screenshot gitsubmodule Datei.)
Aufgabe — IDE‑Ansatz vs. Maven/Gradle
- Untersuchen Sie, wie IntelliJ, VSCode oder andere IDEs Projekt‑ und Artefaktmanagement unterstützen.
Es geht dabei um die Möglichkeiten, die eine IDE anbietet, getrennt von zBsp Maven oder Gradle.
zBsp: https://www.jetbrains.com/help/idea/artifacts.html- Vergleiche diese proprietären Möglichkeiten mit portablen Build‑Tools wie Maven oder Gradle.Beschreiben, wie man vorgeht in der IDE um ein Artefakt einzubinden ohne Maven oder Gradle zu verwenden. Beschreiben wie man mit Maven oder Gradle vorgeht um ein Artefakt einzubinden. Was sind die Vor‑ und Nachteile der jeweiligen Ansätze?
- Halten Sie die Erkenntnisse fest.
Aufgabe — Refresher: Was ist ein Maven‑Artefakt?
- Erarbeiten Sie die Bedeutung der Begriffe eines Maven‑Artefakts: GroupId, ArtifactId, Version, Packaging, Classifier.Erklärung zu Begriffen festhalten.
- Erarbeiten Sie den Aufbau eines Maven‑Artefakts.Aufbau festhalten und erklären.
- Unterscheide zwischen Release‑ und Snapshot‑Artefakten.Erklärung zu Begriffen festhalten.
- Literaturhinweis: https://www.baeldung.com/maven-artifact
- Halten Sie die Erkenntnisse fest.
Input Central Maven Repository
Maven Artefakte werden in Maven-Repositories verwaltet. Sie kennen wahrscheinlich bereits das Central Maven Repository. Wo Sie zum Beispiel das Artefakt für den Connector auf eine MySQL Datenbank finden.

Aufgabe — Lokales Maven‑Repository
- Lese: https://www.baeldung.com/maven-local-repository
- Finde Sie ein lokales Maven‑Repository auf Ihrem Rechner und bestimmen Sie dessen Speicherplatzbedarf.
- Erklären Sie Zweck und Aufbau der
settings.xml.- Halten Sie die Erkenntnise fest.
Aufgabe — Artefakte zur Verfügung stellen
- Recherchiere Möglichkeiten, ein Maven‑Artefakt zu veröffentlichen (Maven Central, Nexus/Artifactory, GitHub Packages, File‑Sharing).
- Beschreiben kurz zu den jeweiligen Möglichkeiten, wie man vorgeht, um ein Artefakt zu veröffentlichen.
- Halten Sie Vor‑ und Nachteile der jeweiligen Möglichkeit fest.
Nützliche Hinweise & Links
- Git Submodules: https://git-scm.com/book/en/v2/Git-Tools-Submodules
- Maven Central / Suche: https://mvnrepository.com/
- Baeldung Artikel (Maven Artifact): https://www.baeldung.com/maven-artifact
- Baeldung Artikel (Local Repository): https://www.baeldung.com/maven-local-repository