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.
Einfach die pom.xml um folgende Zeilen ergänzen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<build> <plugins> <plugin> <groupId>de.wenzlaff.command.maven.plugin</groupId> <artifactId>de.wenzlaff.command.maven.plugin</artifactId> <version>0.0.1</version> <configuration> <!-- Optional: Kommandoparameter der hier geändert werden kann --> <command>ls -lat</command> </configuration> <executions> <execution> <goals> <goal>info</goal> </goals> </execution> </executions> </plugin> </plugins> </build> |
Schon wird das Info Goal bei einem mvn clean install ausgeführt, wie dieses Log zeigt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
[INFO] Scanning for projects... [INFO] [INFO] --< de.wenzlaff.beispiel.maven.command.plugin:de.wenzlaff.beispiel.maven.command.plugin >-- [INFO] Building de.wenzlaff.beispiel.maven.command.plugin 0.0.1-SNAPSHOT [INFO] --------------------------------[ pom ]--------------------------------- [INFO] [INFO] --- de.wenzlaff.command.maven.plugin:0.0.1:info (default) @ de.wenzlaff.beispiel.maven.command.plugin --- [INFO] Thomas sein Command-Plugin in Version: 0.0.1-SNAPSHOT, ArtifactId: de.wenzlaff.beispiel.maven.command.plugin [INFO] Führe das Kommando aus: ls -lat [INFO] total 24 -rw-r--r-- 1 thomaswenzlaff staff 1308 Feb 15 16:22 .classpath -rw-r--r-- 1 thomaswenzlaff staff 934 Feb 15 16:21 pom.xml drwxr-xr-x 7 thomaswenzlaff staff 224 Feb 15 16:11 target drwxr-xr-x 8 thomaswenzlaff staff 256 Feb 15 16:11 . drwxr-xr-x 4 thomaswenzlaff staff 128 Feb 15 15:51 .settings -rw-r--r-- 1 thomaswenzlaff staff 570 Feb 15 15:51 .project drwxr-xr-x 4 thomaswenzlaff staff 128 Feb 15 15:51 src drwxr-xr-x 80 thomaswenzlaff staff 2560 Feb 15 15:51 .. [INFO] [INFO] --- maven-install-plugin:2.4:install (default-install) @ de.wenzlaff.beispiel.maven.command.plugin --- [INFO] Installing /Users/thomaswenzlaff/eclipse-workspace-2018-09/de.wenzlaff.beispiel.maven.command.plugin/pom.xml to /Users/thomaswenzlaff/.m2/repository/de/wenzlaff/beispiel/maven/command/plugin/de.wenzlaff.beispiel.maven.command.plugin/0.0.1-SNAPSHOT/de.wenzlaff.beispiel.maven.command.plugin-0.0.1-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS |
Es wird alles im INFO-Level geloggt. Die ganze Pom eines Beispiel-Projektes sieht so aus:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>de.wenzlaff.beispiel.maven.command.plugin</groupId> <artifactId>de.wenzlaff.beispiel.maven.command.plugin</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> <build> <plugins> <plugin> <groupId>de.wenzlaff.command.maven.plugin</groupId> <artifactId>de.wenzlaff.command.maven.plugin</artifactId> <version>0.0.1</version> <configuration> <!-- Optional: Kommandoparameter der hier geändert werden kann --> <command>ls -lat</command> </configuration> <executions> <execution> <goals> <goal>info</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project> |