Main /

Maven

Maven

Maven

Maven ist ein modernes Buildtool, das nach richtiger Konfiguration der pom.xml en und Aufruf über die Shell, die Abhängigkeiten auflöst und benötigte Libraries aus dem Internet runterlädt.

Konfiguration

Maven im Schnelldurchgang

  • Maven ist ein Framework, das jede Aufgabe mit Plugins ausführt.
  • Maven arbeitet von der Shell und läßt sich mit Parametern aufrufen.
  • Maven hat sog. Lifecycles also eine festgelegte Abfolge von Arbeitsschritten. Es gibt 3 Lifecycles, default, site und clean.
    default ist der Standard und enthält z.B. die Phase compile die das Projekt baut, package packt das Archiv zusammen, in target ist dann ein WAR File zu finden. install installiert das Archiv in das lokale Repository.
  • Maven arbeitet mit sog. Koordinaten, das ist immer eine groupId, eine artifactId und eine version. Damit wird bei Maven alles identifiziert.

Koordinaten

 <groupId>de.elsniwiki</groupId>      <!-- hier z.B. den Packagenamen verwenden -->
<artifactId>Obermufti</artifactId> <!-- ist später der Name der jar Datei -->
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>

Hint: Leider kann man die Koordinaten so schreiben, das sie nichts mit der zugrunde liegenden Filestruktur zu tun haben, was gerne für große Verwirrung sorgt.

Verzeichnisstruktur

Maven arbeitet nach Convention over configuration, alles ist festgelegt, es sei den man konfiguriert es um. Man sollte sich an die Verzeichnisstruktur von Maven gewöhnen, so findet man sich schnell in allen Maven Projekten zurecht.

Packaging

  • jar ist im Ergebnis genau eine jar Datei
  • war ist ein War File für JEE (gezippter Klotz mit vielen jar Dateien)
  • pom es wird kein Archiv gebaut, nur Module sollte man angeben, so kann man beliebige andere Mavenprojekte immer weiter schachteln oder zusammenstellen.

Lifecycles

default Lifecycle

  • validate prüft die poms auf plausibilität
  • compile baut den Source
  • test führt die verfügbaren Tests Unit tests aus.
  • package erzeugt ein jar Archiv oder ein war file, je nachdem was im packaging steht
  • verify prüft das erstellte Archiv
  • install kopiert das Archiv in das lokale Repository
  • deploy kopiert das Archiv in das entfernte Repository

...

clean Lifecycle

  • clean räumt alle gebauten Dateien wieder weg.

...

site Lifecycle

  • site erstellt die Dokumentation

...

Die POM (Project Object Model)

Dem Compiler per Maven mehr Speicher zuweisen

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <fork>true</fork>
          <compilerArgument>-verbose -Xmx768m</compilerArgument>
          <!-- <meminitial>128m</meminitial> -->
          <!-- <maxmem>1024m</maxmem> -->
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>

Links

 mvn versions:display-dependency-updates
 mvn versions:display-plugin-updates
 mvn versions:use-latest-versions setzt alles auf die letzte Version
Frische Änderungen | Menü editieren
zuletzt geändert am 02.04.2019 11:55 Uhr von Lars
Edit Page | Page History