Maven & JavaFX für Werner

ChangeLog:
Inhaltsverzeichnis: Entwicklungsumgebung einrichten Erstellung des Projekts Mit Maven in der Shell Mit NetBeans Jetzt wird gemalt Malen mit der Maus Gierige Programmierer
Moin Werner,
ich dachte, ich schreibe hier mal auf, wie ich die Sache mit Maven und JavaFX angehen würde. Daher gibt es hier nun eine kleine Step-By-Step Beschreibung, auch mit ein paar Bildchen, damit du dir das besser vorstellen kannst.

Entwicklungsumgebung einrichten

Fürs erste nehmen wir der Einfachheit halber Java-8 für die JavaFX-Entwicklung. D.h. aus meiner Sicht, wir benötigen Java-8 für das Projekt, und Java-11 für eine aktuelle NetBeans Version. Und natürlich NetBeans selber. Damit wir hier den Überblick behalten, zeige ich hier auch meine Verzeichnisstruktur, die ich für dieses Tutorial so aufbaue:
ruediger@ruediger-mate:~$ mkdir Tutorial
ruediger@ruediger-mate:~$ cd Tutorial/
ruediger@ruediger-mate:~/Tutorial$ mkdir Downloads Entwicklung etc opt nb-userdir nb-cachedir
ruediger@ruediger-mate:~/Tutorial$ ls
Downloads  Entwicklung  etc  nb-cachedir  nb-userdir  opt
Im Ordner "Entwicklung" werden wir unser Projekt platzieren, "etc" dient als Ort für Scripte und "opt" wird unsere Entwicklungsumgebung aufnehmen. "Downloads" ist selbsterklärend. Die "nb-"-Verzeichnisse dienen dazu, keine Kollision mit einer bestehenden NetBeans installation zu verursachen.
Dann lass uns als erstes die benötigten Komponenten herunterladen:
cd Downloads
wget https://javafx.valaquenta.de/jdk-8u202-linux-x64.tar.gz
wget https://javafx.valaquenta.de/openjdk-11-28_linux-x64_bin.tar.gz
wget https://javafx.valaquenta.de/netbeans-16-bin.zip
cd ..
Wir verwenden hier Java-8 von Oracle im Patch 202, da bis dahin die Lizenz für Java noch sehr frei war. Nach der 202 hat Oracle die Lizenzbedingungen deutlich geändert, weshalb wir für das Java-11 auch auf OpenJdk gehen. Wenn du auf die Lizenzbedingungen von Oracle keinen Wert legst, kannst du auch den aktuellen Java-8 Patch verwenden:
cd Downloads
wget https://javafx.valaquenta.de/jdk-8u341-linux-x64.tar.gz
cd ..
Nun packen wir die Sachen aus:
cd opt
tar xzvf ../Downloads/jdk-8u202-linux-x64.tar.gz
ln -s jdk1.8.0_202/ java8

tar xzvf ../Downloads/openjdk-11-28_linux-x64_bin.tar.gz
ln -s jdk-11/ java11

unzip ../Downloads/netbeans-16-bin.zip
mv netbeans/ netbeans-16
ln -s netbeans-16/ netbeans
cd ..
Die Verlinkungen haben den Sinn, dass man Komponenten schnell durch eine aktuellere Version austauschen kann. Da wir hier nichts installieren, ist es das einfachste, wir bauen uns für einzelne Aufgaben die passenden Scripte. Z.B. für das Starten von NetBeans. Dazu legen wir im Ordner "etc" das Script "startNB.sh" an:
#!/bin/bash

export JAVA_HOME=~/Tutorial/opt/java11
export NETBEANS_HOME=~/Tutorial/opt/netbeans
export NETBEANS_USERDIR=~/Tutorial/nb-userdir
export NETBEANS_CACHEDIR=~/Tutorial/nb-cachedir
$NETBEANS_HOME/bin/netbeans --jdkhome $JAVA_HOME --userdir $NETBEANS_USERDIR --cachedir $NETBEANS_CACHEDIR
Jetzt machen wir das Script noch ausführbar, und starten es einfach mal. NetBeans in der Version 16 sollte auf dem Bildschirm erscheinen.
cd etc
chmod +x startNB.sh
./startNB.sh
Klasse! Jetzt brauchen wir nur noch 2 Sachen. Java-8 als Platform im NetBeans, damit wir auch ein Java-8 Projekt machen können, und natürliche Maven, aber das ist einfach. Erst müssen wir dem NetBeans sagen, dass es die Java-PlugIns aktivieren soll. Dazu legen wir ein neues "Java with Ant" Projekt an. Klickt man nun auf "Next", erkennt NetBeans, dass es noch Module aktivieren muss. Wenn dann das nächste Fenster erscheint, können wir auf "Cancel" gehen. Wir müssen kein Projekt anlegen, aber NetBeans hat die Java-PlugIns geladen. Dies ist nur beim ersten Start von NetBeans nötig, da sonst die Menüeinträge unter "Tools" fehler. Im NetBeans gehen wir nun auf das Menü "Tools". Darunter gibt es den Menüeintrag "Java Platforms". Da klicken wir mal drauf.
Dann sollte dieser Dialog erscheinen. Ist dort noch kein Java-8 vorhanden (links in der Liste), so fügen wir einfach eine Platform hinzu: Klick auf "Add Platform...". Wählen dann "Java Standard Edition" und klicken auf "Next". Wählen dort unseren Java-8-Link und klicken auf "Finish".
Nach dem Klick auf "Finish" sollten links in der Liste zwei Platformen stehen JDK 1.8 und JDK 11 (default). Nun können wir den Dialog schließen.
Super. So, jetzt brauchen wir nur noch das Maven. Simple as possible:
sudo apt-get install maven
Fertig. Weiter geht es mit Teil 2: Erstellung des Projektes