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:

Automatische Überprüfung auf Sicherheitslücken im Java Code auf Basis der Internationalen National Vulnerability Database (NVD)

Sicherheit in Java-Projekten. Datenlecks in Java-Code entdecken. Reports mit bekannten Sicherheitslecks können leicht erstellt werden. Hier mal ein Beispiel Report im HTML Format:

Grundlage bildet die National Vulnerability Database (NVD) Datenbank für Sicherheitslücken, die vom National Institute of Standards and Technology (NIST) gepflegt wird. Wie können solche Reports erstellt werden?

Einfach in der Maven pom.xml das folgende Plugin DependencyCheck ergänzen: „Automatische Überprüfung auf Sicherheitslücken im Java Code auf Basis der Internationalen National Vulnerability Database (NVD)“ weiterlesen

Anzeigen aller benutzten und ungenutzen Abhängigkeiten mit Maven.

mvn dependency:analyze

Erzeugt z.B.:
...
[INFO] --- maven-dependency-plugin:2.0:analyze (default-cli) @ twsendsms ---
[WARNING] Used undeclared dependencies found:
[WARNING] com.google.gdata:gdata-core-1.0:jar:1.41.5:compile
[WARNING] com.google.gdata:gdata-contacts-3.0:jar:1.41.5:compile
[WARNING] com.google.gdata:gdata-client-1.0:jar:1.41.5:compile
[WARNING] Unused declared dependencies found:
[WARNING] junit:junit:jar:sources:4.7:compile
[WARNING] junit:junit:jar:4.7:test
[WARNING] google-data:google-data:jar:0.0.1:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

Wie können alle transitiven Abhängigkeiten eines Projektes mit Maven angezeigt werden?

mvn dependency:tree

Ausgabe z.B.:

[INFO] Building twsendsms 0.1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.0:tree (default-cli) @ twsendsms ---
[INFO] de.wenzlaff.twsendsms:twsendsms:jar:0.1.0
[INFO] +- junit:junit:jar:4.7:test
[INFO] +- commons-codec:commons-codec:jar:1.4:compile
[INFO] +- telekom-sdk-java:java-sdk:jar:3.1.10:compile
[INFO] +- junit:junit:jar:sources:4.7:compile
[INFO] +- log4j:log4j:jar:1.2.4:compile
[INFO] \- google-data:google-data:jar:0.0.1:compile
[INFO] +- com.google.gdata:gdata-contacts-3.0:jar:1.41.5:compile
[INFO] | \- com.google.gdata:gdata-client-1.0:jar:1.41.5:compile
[INFO] \- com.google.gdata:gdata-core-1.0:jar:1.41.5:compile
[INFO] +- com.google.collections:google-collections:jar:1.0-rc1:compile
[INFO] \- com.google.code.findbugs:jsr305:jar:1.3.9:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS

Wie kann Maven 3 auf Mac OS X 10.7.2 Lion installiert werden?

Erst Macports installieren und dann mit

sudo port install maven3

die Installation starten. Dann wie im Installationsfenster beschrieben, maven 3 als default setzen.

Wichtig ist noch, das im ~/.m2/settings.xml das Lokale Repository angegeben wird. Dabei darf das Lokale Verzeichnist nicht
mit ~ gesetzt werden, sondern es muss der komplette Pfad angegeben werden, sonst laufen die Eclipse Plugins nicht richtig.

In

~/.bash_profile

noch:

export M2_HOME=/opt/local/share/java/maven3
export PATH=${M2_HOME}/bin:${PATH}

setzen.