Ein erstes “Hello World” von JavaFX mit Maven
https://oer-informatik.de/jfx_01_initialisierung_des_projekts
tl/dr; (ca. 3 min Lesezeit): Erstellung eines JavaFX-Projekts, Aufbau der Maven-Konfiguration
pom.xml
und Starten des Programms (auch mit Maven). Artikel ist Teil eines JavaFX-Tutorials.
Das Build-System Maven
Software-Projekte nutzen häufig Bibliotheken oder Module, die geladen und eingebunden werden müssen. Beispielsweise wollten wir das Modul JavaFX nutzen, haben dies aber bislang noch gar nicht installiert. Wir können uns jetzt selbst um alle Abhängigkeiten kümmern, diese aus dem Netz laden, einbinden usw. oder uns von einem Build-System wie Maven oder Gradle helfen lassen.
In diesem Beispiel werde ich Maven nutzen, wir werden später sehen, dass die Auflösung von Abhängigkeiten nur ein kleiner Teil der Aufgaben eines Build-Systems ist.
Ein neues JavaFX-Projekt erzeugen
Wenn in VSCode das Java Extension Pack installiert ist, lässt sich über die Commandos ein neues Java-Projekt erstellen: Per Tastatur: Strg-Shift-P
oder über das Menü Help / Show All Commands:

In dem Eingabefeld kann per Dropdown eingegeben oder per Eingabe vorausgewählt werden. Bei Eingabe von “Create Java” erscheint der für uns richtige Punkt “Java: Create Java Project”:

Es soll ein JavaFX Projekt mit Maven erzeugt werden, daher wähle ich “JavaFX”:

Die GruppenID ist so etwas, wie eine umgekehrte Domäne: sie dient dazu, Pakete und Module zu gliedern und zu finden (kleingeschrieben):

Als Name des Softwareprodukts (“Artefakt”) wähle ich “energymonitor” (kleingeschrieben):

Anschließend muss noch der Speicherort gewählt werden.
Wenn das geschehen ist geht es im Terminal (unten in VS Code) weiter: Maven beginnt direkt damit, die nötigen Abhängigkeiten zu laden - z.B. alle Module, die für JavaFX nötig sind. Man kann das in VSCode erkennen, wenn man unten das Terminal öffnet:

Leider wurden immernoch nicht alle Infos abgefragt, die zum Projektstart erforderlich sind. Im Terminal muss noch die Version eingegeben werden (oder per Return der Defaultwert bestätigt werden):

Anschließend müssen alle Eingaben noch einmal bestätigt werden (mit “Y” oder Return):

Jetzt wird die Zusammenfassung ausgegeben, die Dateien werden unter dem Pfad angelegt und man hat die Möglichkeit, den Ordner direkt zu öffnen (“Open” unten in der rechten Ecke):

Was wurde erzeugt?
Das Buildsystem Maven hat eine Verzeichnisstruktur, Konfigurationsdateien und ein kleines Beispielprogramm angelegt. Wir wollen uns zunächst zwei Dateien anschauen: die pom.xml
und die Startdatei der App, die darin konfiguriert wird:

In der pom.xml
werden die Eingaben, die wir im Rahmen der Projektinitialisierung gemacht haben gespeichert - und können dort geändert werden. Es wurden zudem automatisch alle Abhängigkeiten und Versionen eingefügt, die für das Projekt erforderlich sind.
Zusätzlich wird genannt, welche Klasse den Startpunkt des Programms darstellt (grün): <mainClass>de.csbme.ifaxx.App</mainClass>
: also im Package de.csbme.ifaxx
die Klasse App
. Diese Klasse wird unser Ausgangspunkt für weitere Erkundungen sein.
Hier nochmal die wesentlichen Abschnitte (gekürzt) der pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.csbme.ifaxx</groupId>
<artifactId>energymonitor</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
...
</properties>
<dependencies>
...
</dependencies>
<build>
<plugins>
...
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>0.0.6</version>
<executions>
<execution>
<!-- Default configuration for running -->
<!-- Usage: mvn clean javafx:run -->
<id>default-cli</id>
<configuration>
<mainClass>de.csbme.ifaxx.App</mainClass>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Ausführen des JavaFX-Projekts

Über Maven wird ein Java-Programm ausgeführt, in dem der Pfad zur pom.xml
-Datei übergeben wird:
Nächste Schritte
Dieser Artikel ist ein Teil der Artikelserie zu einer Energiemonitors mit JavaFX.
Das Projekt ist erstellt, jetzt kommt das unweigerliche Hello World mit JavaFX.
Links und weitere Informationen
Quellen und offene Ressourcen (OER)
Die Ursprungstexte (als Markdown), Grafiken und zugrunde liegende Diagrammquelltexte finden sich in weiterbearbeitbarer Form im gitlab-Repository unter https://gitlab.com/oer-informatik/java-fx/ersteschritte und sind zur Nutzung als Open Education Resource (OER) freigegeben gemäß der Creative Commons Namensnennung 4.0 International Lizenz (CC BY 4.0).