12. August 2015 | 3 min lesezeit

frontend-maven-plugin

node mit maven - frontend-maven-plugin

Node.js ist bei der Entwicklung modernen Web-Anwendungen nicht mehr wegzudenken. In Kombination mit dem Node Package Manager npm bildet Node die Basis für zahlreiche Tools und Frameworks die sich im Rahmen eines „Frontend“-Buildprozess um die Generierung von statischem Content, Minifizierung, Obfuscation, Komprimierung, Testausführung, statische Analyse oder Erzeugung von Artefakten kümmern.

Während die JVM heute auf fast jedem Rechner zu finden ist, müssen Node und npm zusätzlich installiert werden. Dies sollte für einen Web-Entwickler an seinem Arbeitsplatz kein Hinderniss darstellen, bedeutet aber für Testsysteme oder den Buildserver zusätzlichen Konfigurationsaufwand. Werden Node oder Frontend-Tools wie Sass, gulp, Karma oder Webpack im Kontext einer Enterprise Anwendung genutzt, besteht der Wunsch nach einer Lösung die eine einfache Integration in den bestehenden Buildprozess ermöglicht. Dabei ist es unerheblich ob die Frontend-Tools in einem eigenen Artefakt oder serverseitig als Teil der Enterprise-Anwendung eingebunden werden.

Hier setzt das Frontend Maven Plugin von Eirik Sletteberg an. Das Plugin lädt Node und npm in das jeweilige Projekt/Modul, installiert benötigte NPM Module und führt diese aus. Der Einsatz des Plugins ermöglicht eine einfache Integration eines JavaScript-Buildprozess in einen Maven Build und sorgt gleichzeitig dafür, dass in jeder Buildumgebung dieselbe Node und npm Versionen verwendet werden.

Nach dem Hinzufügen des Plugins zum Maven Projekt werden die auszuführenden Aktionen über <execution> definiert. Als Erstes sollen Node und npm geladen und in den node Ordner im Basisverzeichnis des Projekts (dasselbe Verzeichnis wie die pom.xml) installiert werden. Standardmäßig erfolgt der Download von http://nodejs.org/dist. Über die Konfiguration kann bei Bedarf aber auch eine alternative Quelle definiert werden. Nach dem Download stehen Node und npm für das lokale Projekt zur Verfügung (weitere Installationen von Node/npm auf dem System werden nicht beeinträchtigt). Da die Binärdateien von Node und npm OS-spezifisch sind, sollte der node Ordner nicht versioniert werden.

Im zweiten Schritt sollen alle npm Module installiert werden. Hierzu muss zunächst die Datei package.json angelegt werden. Diese erfüllt denselben Zweck für npm wie die pom.xml für Maven und enthält relevante Metadaten (Name, Version) und Abhängigkeiten für das Projekt.

Nach dem Erstellen der package.json kann die Aktion npm install zur Plugin-Konfiguration hinzugefügt werden. Diese lädt alle benötigten npm Module herunter und installiert diese in das Verzeichnis node_modules unterhalb des node Ordners.

Zur Ausführung der <executions> muss das Projekt mit maven clean install gebaut werden.

Nachdem Node, npm und die benötigten Module installiert wurden, können weitere Aktionen zur Ausführung etablierter Tools wie Gruntgulp, Karma oder Webpack ergänzt werden. Weitere Informationen hierzu finden sich auf der Webseite des Plugins.


Keine Kommentare

Kontakt

OPEN KNOWLEDGE GmbH

Standort Oldenburg:
Poststraße 1, 26122 Oldenburg

Standort Essen:
II. Hagen 7, 45127 Essen