Auf dem Rasberry Pi 4 ist ja default Java 11 installiert. Nun wollen wir mal schnell ein kleines Java Projekt mit Maven erstellen. Da ist schnell gemacht mit Archetype vom Maven. Danke Dr.Kleinhirn.eu für die Bereitstellung der Mindmap
Also nur noch Maven 3.6.0 installieren mit: sudo apt-get install maven
Dann checken ob alles richtig installiert ist mit: mvn -version
Wer noch 5 Minuten hat, kann das Beispielprojekt mit der CO2-Ampel auch gleich in einem Docker Container laufen lassen. Vorraussetzung Docker läuft und das Beispielprojekt wurde installiert.
Dann sind, dank der automatisch generierten Docker-Files nur diese 3 Schritte im Verzeichnis der root pom nötig:
1
2
3
4
5
6
7
8
// 1. das Projekt bauen
mvn package-Dquarkus.package.type=fast-jar
// 2. das Image bauen, man beachte den Punkt am Ende
Einen REST Service in 15 min mit Quarkus, OpenAPI, Swagger UI und JUnit-Test erstellen und um CO2-Ampel Service erweitern ist nicht kompliziert. Freut euch immer
Vorraussetzungen Java 11 und Maven. Test mit:
Weil heute Sonntag ist. „Freut euch immer„! Nun ein kleiner Java CO2 MQTT Client um auch auf allen Betriebssystemen mit Java die CO2 Daten zu empfangen. Nicht nur für den Raspberry Pi auch Mac und Windows (ungetestet;-)).
Das selbstausführende JAR laden (siehe unten) und starten mit:
Vor einiger Zeit hatte ich hier mal beschrieben, wie ein einfaches Maven-Plugin erstellt werden kann, dass alle Kommandozeilen Parameter im Log ausgibt z.B. ls, ps, ls -la. So können im Build-Prozess Verzeichnisse oder Prozesse überwacht werden.
Wer aber nur das Kommandozeilen Plugin nutzen will, kann dieses mit ein paar Zeilen in der pom.xml tun, da das Plugin auf Maven-Central frei verfügbar ist.
Squirrel (Sciurus vulgaris) in der 3.Etage am 15.01.2020
Auf Gitlab liegt nun der Quellcode, für den der sich das ganze Projekt einfach holen will: git clone git@gitlab.com:IT-Berater/twmavencommandplugin.git
Die Methode im Mojo kann in eine eigene Klasse CommandProviderApi verschoben werden. Ein neues Interface CommandProvider kann erstellt werden. Die erstellen wir hier:
Ein eigenes Maven-Plugin zu erstellen ist nicht schwer und ist schnell gemacht. Wir wollen ein Plugin welches einen Verzeichnis Inhalt mit ls -la in das Log schreibt erstellen. Es können aber auch andere Linux Befehle übergeben werden. Hier nun die 6 Schritte mit den Vorlagen die mind. nötig sind. Always rejoice, mit freundlicher Genehmigung meines Lieblingskünstlers
1. Wir legen in Eclipse ein neue Maven Projekt mit Java 1.8 an. mit Artifact Id und Group Id de.wenzlaff.command.maven.plugin
Wenn Java 8 und ein aktuelles Maven auf dem Raspberry Pi installiert ist, kann man in unter 5 Minuten eine komplette REST-Anwendung mit statischer Webseite erstellen und starten. Die dann sogar Hot Reloading fähig ist. Das geht in drei Schritten und das sogar auf einem Raspberry Pi Zero: Freut euch immer
1. Ein neues leeres Verzeichnis erstellen und dahin wechseln:
1
2
mkdir quarkus-anwendung
cd quarkus-anwendung
2. Mit folgenden Maven Kommando ein Maven Projekt in ca. 30 Sekunden erstellen
Mit einen sudo apt-update oder sudo apt update && sudo apt install maven bekommt man unter stretch nicht die neueste Version sondern nur 3.3.9-4. Aber man kann sie auch von der Binär-Version installieren.
Wenn das kein Grund ist mal die neue Version zu testen. Quarkus ist ein relativ neues Framework, welches die leichtgewichtige Entwicklung von Java-Anwendungen nach dem „Container-first“-Prinzip macht. Es wird von Red Hat gesponsert und macht die Entwicklung von Microservices einfacher. Was Entwickler besonders gefällt ist das Live Reloading so das man gemachte Änderungen sofort „sieht“.
Also gleich ein Build it. Save it. Run it. – und das mit Java:
Seit ein paar Tagen gib es eine neue Version von Freemarker 2.3.29. Was gibt es da Neues? Fünf Änderungen auf FTL Seite und neun auf Java-Seite. Dann mal ein Projekt Testweise updaten. Dazu nehme ich mal den TWMindmapgenerator.
Quicktest ok! Mehr im Handbuch.
Seit März 2017 gibt es noch kein neues Release von den Commons CLI. Aber warum die Commandline nicht auch damit auswerten? Macht alles viel übersichtlicher.
Das geht mit ein paar Zeilen Java Code und einen Eintrag in der pom.xml:
Build Pipeline mit YAML Script zum erzeugen eines *.deb Archives mit Maven für Debian auf Raspberry Pi.
Oder wie kann man ein *.deb Archive mit Maven Plugin erzeugen?
Oder wie verpackt man ein JAR in ein deb Archive, um es einfach auf einem Raspberr Pi zu installieren?
Oder wer braucht ein Template für das erzeugen von Maven Artefacten mit einer automatischen Pipeline in GitLab?
Oder wie validiere ich die Build-Scripte der Build-Pipeline?
Auf diese ua. Frage gibt dieser Blog-Artikel Auskunft.
Wir wollen eine Build-Pipeline mit mehreren Javaversionen, test und build bzw. deploy erstellen. Hier der Flow der Pipeline:
Heute vor 20 Jahren, am 1.12.1998 ging die Domain wenzlaff.de zum ersten mal ans Netz. Wie die Zeit vergeht.
Es war eine statische Webseite mit Freeware und Sprüche Datenbank mit Newsletter und einigen C++ und Java Programmen zum kostenlosen Download aus meiner Hand. Hier ein etwas unvollständiges Bildschirmfoto, mehr habe ich leider nicht mehr gefunden:
Aber auch schon lange vor dieser Zeit, hatte ich eine Homepage, die aber dann auf den Servern der UNI-Bremen kostenlos gehostet wurde. Da hatte ich als Informatiker einen Zugang mit Akustikkoppler mit 300 Baud und Lochkarten hatten wir da auch noch. Das war wenigstens etwas zum anfassen, batches mit Lochkarten schreiben, cool!
Und es gab keine Werbung im Internet.
Die schöne alte Zeit. Und in der Zwischenzeit gab es immer mal neue Technologie. Vom statischen html zum xhtml und JavaScript über einen eigenen Java html Generator mit Templates bis heute zu den Content-Management-System mit eigener Datenbank.
Bis heute konnte ich auch auf dieser Webseite immer auf Werbung verzichten. Juhu …
Wie soll es weiter gehen? Gibt es noch Themen nach über 1000 Beiträgen? Ideen habe ich noch genug, was fehlt ist die Zeit!
In diesem Sinne, vielen Dank an alle Leser und für das viele Feedback (die über 1000 Kommentare mit Kommentarfunktion habe ich ja abgeschaltet…DSGVO läßt grüßen) das auch nach wie vor erwünscht ist, aber eben über E-Mail 😉
Bisher hatte ich alle öffentlichen Repositorys in GibHub liegen. GitHub ist nun aber an Microsoft verkauft worden. Wenn das kein Grund ist, das nächste Repo mal in GitLab anzulegen. GitLab hat auch den Vorteil, das private Repos kostenlos sind und …