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

Erstellt am 15. Februar 2020 von It_berater

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:

<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:

[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:

<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>

Ähnliche Artikel:

  1. Ein eigenes Maven-Plugin in 15 Minuten inklusive Dokumentation erstellen
  2. „Maven Command Plugin“ nun in Version 0.0.1 auf MavenCentral verfügbar
  3. Buildpipeline für Maven-Command-Plugin im Docker über Gitlab