Maven Tipp – Fail-fast mit dem Enforcer Plugin

Fehler und Probleme so schnell wie möglich zu finden und damit eine langwierige und ärgerliche Fehlersuche zu vermeiden, ist das Ziel des Fail-fast Gedankens, von dem auch Buildsysteme profitieren können.

Die Anforderungen an die Build-Umgebung explizit zu prüfen und den Entwickler auf fehlende Voraussetzungen hinzuweisen, gilt daher als Best Practice im Build-Management. Für Maven-Buildsysteme kommt hier das Enforcer Plugin ins Spiel. Mit ihm lässt sich beispielsweise festlegen, welche minimale Maven Version notwendig ist, um den Build auszuführen, wovon gerade (Maven-)unerfahrene Entwickler mit u.U. veralteten Maven Installationen profitieren.

Beispiel: Ist mindestens Maven 3.0 Voraussetzung für das Ausführen des Builds, lässt sich dies mit folgender Konfiguration erzwingen. Angemerkt sei hier, dass das Enforcer Plugin die Standard Maven Syntax für Versionsangaben unterstützt — mit einer Ausnahme: Gibt man wie im Beispiel explizit eine Version vor, wird dies nicht als empfohlene sondern als Minimalversion gewertet.

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
				<version>1.0</version>
				<executions>
					<execution>
						<id>enforce-maven</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<rules>
								<requireMavenVersion>
									<version>3.0</version>
								</requireMavenVersion>
							</rules>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

Führt man den Build nun beispielsweise mit Maven Version 2.2.1 aus, bricht er mit folgender Meldung ab:

[...]
[WARNING] Rule 0: org.apache.maven.plugins.enforcer.RequireMavenVersion failed with message:
Detected Maven Version: 2.2.1 is not in the allowed range 3.0.
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed.
[...]

Neben der Regel zum Prüfen der Maven Version bietet das Enforcer Plugin einen ganzen Satz weiterer Regeln, die sich je nach gegebenem Projekt verwenden lassen.

Short URL for this post: http://wp.me/p4nxik-y2
This entry was posted in Build, config and deploy and tagged , , , , . Bookmark the permalink.

Leave a Reply