Mal was anderes als COVID-19 Impfstoff BNT162b2: Maven install auf einem Raspberry Pi 4 B mit Beispielprojekt in 10 Minuten mit Archetype

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

Dann in einem leeren Verzeichnis „Mal was anderes als COVID-19 Impfstoff BNT162b2: Maven install auf einem Raspberry Pi 4 B mit Beispielprojekt in 10 Minuten mit Archetype“ weiterlesen

Docker Container mit REST Service in 5 min mit CO2-Ampel Service erstellen

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:

Schon läuft der CO2 Service http://localhost:8080/v1/rest/co2 und CO2-Ampel über http://localhost:8080/v1/rest/co2ampel

Cool. Und hier das Dockerfile … „Docker Container mit REST Service in 5 min mit CO2-Ampel Service erstellen“ weiterlesen

REST Service in 15 min mit Quarkus, OpenAPI, Swagger UI und JUnit-Test erstellen und um CO2-Ampel Service erweitern

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:

mvn -version

auf der Kommandozeile:

Dann fangen wir in einem leeren Verzeichnis an

jetzt rufen wir mit dem Maven Quarkus Plugin das create Goal auf:

Zwei Sekunden später, ist das Projekt angelegt: „REST Service in 15 min mit Quarkus, OpenAPI, Swagger UI und JUnit-Test erstellen und um CO2-Ampel Service erweitern“ weiterlesen

Weil heute Sonntag ist: Java CO2 MQTT Client

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:

java -jar TWCo2Monitor-0.0.1-SNAPSHOT-jar-with-dependencies.jar [PI-Rechner Name/Adresse]

Hier mal eine Ausgabe auf einem Raspberry Pi W Zero:

Der MQTT Client besteht nur aus ein paar Zeilen Java Code: „Weil heute Sonntag ist: Java CO2 MQTT Client“ weiterlesen

Beispiel Verwendung des Maven Plugin: de.wenzlaff.command.maven.plugin

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

Einfach die pom.xml um folgende Zeilen ergänzen: „Beispiel Verwendung des Maven Plugin: de.wenzlaff.command.maven.plugin“ weiterlesen

„Maven Command Plugin“ nun in Version 0.0.1 auf MavenCentral verfügbar

Das „Maven Command Plugin“ ist nun in Version 0.0.1 auf MavenCentral hochgeladen und verfügbar.

Über diese Koordinaten kann das Plugin eingebunden werden:

Und hier ist es zu finden:

Refactoring eines Maven-Plugins mit Dependency Injection

Das hier erstellt Maven-Plugin, kann noch etwas refactored werden mit Nutzung von Dependency Injection.

Always rejoice, mit freundlicher Genehmigung meines Lieblingskünstlers

Die Methode im Mojo kann in eine eigene Klasse CommandProviderApi verschoben werden. Ein neues Interface CommandProvider kann erstellt werden. Die erstellen wir hier:

1. Das Interface: „Refactoring eines Maven-Plugins mit Dependency Injection“ weiterlesen

Ein eigenes Maven-Plugin in 15 Minuten inklusive Dokumentation erstellen

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.

Freut euch immer
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

2. In der pom.xml fügen wir die folgenden Abhängikeiten hinzu: „Ein eigenes Maven-Plugin in 15 Minuten inklusive Dokumentation erstellen“ weiterlesen

In unter 5 Minuten auf einem Raspberry Pi Zero eine Java Quarkus REST Anwendung mit JUnit-Test neu erstellen und starten!

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:

2. Mit folgenden Maven Kommando ein Maven Projekt in ca. 30 Sekunden erstellen

3. Das Projekt compilieren und starten in ca. 40 Sekunden mit:

Wenn der Server gestartet ist kann im Browser das Servlet aufgerufen werden mit:

http://[PI-ADRESSE]:8080/info

Ergebnis: hello

4. Nun wollen wir in einem anderen Kommondozeilen-Fenster in das Verzeichnis „In unter 5 Minuten auf einem Raspberry Pi Zero eine Java Quarkus REST Anwendung mit JUnit-Test neu erstellen und starten!“ weiterlesen

Wie kann die aktuellste Maven Version 3.6.2 auf dem Raspberry Pi installiert werden?

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.

1. Die aktuelle Version von der Maven-Seite holen.

wget http://mirrors.ae-online.de/apache/maven/maven-3/3.6.2/binaries/apache-maven-3.6.2-bin.tar.gz

2. Das Archive entpacken nach /opt

cd /opt && sudo tar -xzvf /home/pi/apache-maven-3.6.2-bin.tar.gz

3. Der Shell für alle User die neue Version mitteilen

sudoedit /etc/profile.d/maven.sh

mit diesem Inhalt

export M2_HOME=/opt/apache-maven-3.6.2
export „PATH=$PATH:$M2_HOME/bin“

Speichern und

4. Die Shell neu starten, damit das Profil-Script ausgeführt wird und die Version checken:

mvn -version

Ok, es wird die neue Version ausgegeben:

Quicktest: Gestern wurde Quarkus 0.24.0 released – „Container First“

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:

./mvnw compile quarkus:dev

Das klappt ja schon mal, nun ein

./mvnw clean package
Package bauen: „Quicktest: Gestern wurde Quarkus 0.24.0 released – „Container First““ weiterlesen

Java Quickie: Die Kommandozeilen Argumente mit Apache Commons CLI bändigen

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:

Hier ein Beispiel snippets: „Java Quickie: Die Kommandozeilen Argumente mit Apache Commons CLI bändigen“ weiterlesen

Was kann man gegen eine NoClassDefFoundError (org/bouncycastel.asn1.ASN10ctetString) beim verschlüsseln mit iText tun?

Was kann man gegen eine NoClassDefFoundError (org.bouncycastele.asn1.ASN10ctetString) beim verschlüsseln mit iText tun?

Zur Laufzeit wird die Klasse benötig. Es kommt diese Exc:

Lösung, „Was kann man gegen eine NoClassDefFoundError (org/bouncycastel.asn1.ASN10ctetString) beim verschlüsseln mit iText tun?“ weiterlesen

Build Pipeline mit YAML Script zum erzeugen eines *.deb Archives mit Maven und jdeb für Debian auf Raspberry Pi mit GitLab

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:

So sieht die Pipeline mit den drei Stages aus: „Build Pipeline mit YAML Script zum erzeugen eines *.deb Archives mit Maven und jdeb für Debian auf Raspberry Pi mit GitLab“ weiterlesen

Jubiläum: 20 Jahre Homepage wenzlaff.de!

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 😉

Thanks Mindmap
Danke Mindmap

Raspberry Pi FreeMarker Java and Maven Project goes to 去 يذهب إلى GibLab and not to GitHub

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 …

Also das FreeMarker-Maven-Java-Projekt nach GitLab hochladen.

Was etwas suche und Anpassung benötigte, war der CI-Prozess. Aber wenn man die Syntax der .gitlab-ci.yml kennt, geht es mit zwei Zeilen.
Also einen Docker-Container mal mit Java 11 und Maven, wie folgt erstellt: „Raspberry Pi FreeMarker Java and Maven Project goes to 去 يذهب إلى GibLab and not to GitHub“ weiterlesen