Maven

Aus Salber.net

Wechseln zu: Navigation, Suche

Maven (http://maven.apache.org/) ist ein sehr praktisches Tool, um Software-Projekte (vor allem Java) zu „beschreiben“. Was bringt dieses beschreiben? Naja, man kann dann Maven z.B. sagen, er soll eine schöne Webseite für das Projekt erstellen, inklusive Test-Ergebnisse, Code-Coverage-Report und API-Dokumentation. Und das alles nur mit dem Befehl mvn site.

Um das Projekt zu beschreiben gibt es eine Datei im Hauptverzeichnis des Projektes mit dem Namen pom.xml. POM steht für Project Object Model. Sie wird recht detailiert in der POM Reference erklärt. Ein paar weitere einführende Themen und Beispiele finden sich auf der Seite Introduction to the POM.

Hier möchte ich nicht genau auf den Aufbau der POM eingehen, sondern nur ein paar nützliche Plugins und praktische Konfigurationsmöglichkeiten zeigen, die ich selbst oft benutze.

Eine fertige pom.xml mit vielen bereits (für meine Bedürfnisse) eingestellten Plugins gibt es unter pom.xml.

Auf der Seite Maven 3 gibt es weitere Informationen zur am 8.10.2010 erschienenen Version.

Eine aktuelle PDF-Version der Dokumentation gibt es unter http://maven.apache.org/apache-maven.pdf.

Es gibt auch eine Liste von Maven Plugins.

Auf der Seite Maven-ToDo werden Links und andere Informationen zu Maven und ähnlichen Themen gesammelt, die ich mir mal anschauen möchte.

Inhaltsverzeichnis

Tipps und Tricks

Hier gibt es noch ein paar nützliche POM-Schnipsel.

Quelltext ist in UTF-8 kodiert

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<encoding>UTF-8</encoding>
					<source>1.6</source>
					<target>1.6</target>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

Site ist in UTF-8 kodiert

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
				<configuration>
					<inputEncoding>UTF-8</inputEncoding>
					<outputEncoding>UTF-8</outputEncoding>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

Beim Installieren soll auch ein Test-Jar mit den Test-Klassen installiert werden

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.2</version>
				<executions>
					<execution>
						<goals>
							<goal>test-jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>

Beim Installieren soll auch ein Sources-Jar mit dem Quellcode installiert werden

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.1</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<phase>verify</phase>
						<goals>
							<goal>jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>

Ein weiteres Verzeichnis als Quellcode-Verzeichnis verwenden

<project>
	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>build-helper-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>add-source</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>add-source</goal>
						</goals>
						<configuration>
							<sources>
								<source>src/bla/java</source>
							</sources>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
Persönliche Werkzeuge