Hier einige Kniffe für Maven, die häufiger angefragt (oder von mir selbst benötigt) werden. Siehe auch die Maven-FAQ (die Code-Snippets lassen leider immer noch auf sich warten) und die FAQ vom Codehaus-Wiki.
Ein Tip: Installiert man das mittlerweile stark ausgereifte m2 Maven-Plugin von Codehaus, findet man weitere sehr nützliche Hinweise in der Eclipse-Hilfe, die den gesamten "Definite Guide" integriert, mit Suchfunktion.
Die letzten Versionen des Plugins wären eigentlich einen eigenen Eintrag wert: Es kommt jetzt mit einem schon ansprechenden POM-Editor daher, der an die Editoren für die Eclipse-RCP-Entwicklung erinnert (etc. etc. etc., WTP-Unterstützung ist im Codehaus-Wiki beschrieben), aber Achtung: Die Eclipse-Update-URL hat sich geändert zu http://m2eclipse.sonatype.org/update/ resp. http://m2eclipse.sonatype.org/update-dev !
Test umgehen
An der Kommandozeile:
-Dmaven.test.skip=true
In der pom.xml:
<plugins> <!-- ...weitere Plugins... --> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins>
Fremdes Archiv in lokales Repository deployen
Kommt insb. vor, wenn man kommerzielle Archive, die nicht öffentlich verfügbar sind, in sein lokales Repository übernehmen möchte. Oder irgendwelche obskuren Legacy-jars, die mit Ant gebaut werden ;-))))
Man benötigt eine rudimentäre pom-Datei, Teil-Struktur ggf. von http://www.mvnrepository.com/ holen.
Hier ein POM fürs Substance L&F:
<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 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jvnet</groupId>
<artifactId>substance</artifactId>
<version>4.3.11</version>
<packaging>jar</packaging>
<name>Substance Look and Feel</name>
<url>https://substance.dev.java.net/</url>
<description>Private deplomyent, not from Sun!</description>
<dependencies />
</project>
Jetzt an der Kommandozeile in das Verzeichnis wechseln, in dem sich jar und Dummy-POM-Datei befinden und deployen (diesmal fürs jnlp-Servlet):
mvn deploy:deploy-file -Dfile=jnlp-servlet-1.0.jar -DpomFile=openswing-jnlp-servlet.pom -DrepositoryId=release -Durl=http://10.45.7.7:7575/archiva/repository/internal -e
Wirksame Konfiguration anzeigen
mvn help:effective-pom (Siehe die nützlichen weiteren Features hier).
War erstellen
In pom.xml (Unterelement von <project>):
<packaging>war</packaging>
Ggf. das Maven-War-Plugin verwenden und <exclusion> für JEE-Bibliotheken.
Zum Bauen
mvn package
Build ausführen (sic)
mvn compile / mvn package
(Und den "Definite Guide" lesen, um das Konzept zu verstehen <kicher>).
JDK festlegen (zum Kopieren)
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.6</source><!-- oder 1.4 oder 1.5 etc.--> <target>1.6</target><!-- oder 1.4 oder 1.5 etc.--> </configuration> </plugin>
(Fortsetzung folgt…)
Leave a Reply