Einführung Maven
-
Upload
it-systemhaus-der-bundesagentur-fuer-arbeit -
Category
Technology
-
view
2.563 -
download
1
Embed Size (px)
Transcript of Einführung Maven

Einführung in Maven
Platform Independent User Group
Nürnberg 2006
AutorThomas Schubert
Rechtlich geschützt durch die GNU Free Documentation License

Übersicht
➲ Teil I (Allgemeines) Grundlagen Projektstand Features
➲ Teil II (Konzept) Installation Projektbeschreibung Repositories HTML Site Standardreports

Übersicht Teil I
➲ Was ist Maven➲ Maven versus Ant➲ Aktueller Projektstand➲ Features im Buildprozess➲ Features im Deploymentprozess➲ Weitere Features➲ Unterstützte Versionierungstools➲ Default Projektstruktur➲ Projektstrukturen nach Sun➲ Archetypes für abweichende Projektstrukturen

Was ist Maven
➲ Maven ist ein neues Build System, andere Buildsysteme sind z.B. make oder ant
➲ Maven arbeitet Plugin basiert➲ Maven arbeitet mehrstufig
(Plugins rufen Plugins)➲ Maven ist steuerbar über Metainformation:
Projektdescriptor Property Dateien (nur Maven 1.0.x-1.1.x) maven.xml (nur Maven 1.0.x – 1.1.x)
➲ Maven ist erweiterbar durch eigene Plugins

Maven versus Ant
➲ Ablauf und Logik sind fest im Plugin hinterlegt
➲ Realisierung einer flexiblen Steuerung über Properties obliegt dem Plugin Entwickler
➲ Realisiert in Open Source Projekten
➲ Ablauf und Logik sind fest im Skript hinterlegt
➲ Realisierung einer flexiblen Steuerung über Properties obliegt dem Nutzer
➲ Realisiert in Open Source Projekten
Maven Ant

Projektstand
➲ Veraltete Maven Version ist 1.0.x➲ Aktuelle stabile Version ist 2.0➲ 2.0 ist nicht abwärtskompatible zu 1.0➲ Realisiert ist eine Version 1.1 welche
kompatible zu 1.0 und 2.0 ist.Gedacht ist diese für den Upgrade von Produktionssystemen
➲ Entwicklerversion Maven 2.0.2 verhält sich bereits stabil

Features im Buildprozess
➲ Erstellung von Resourcen aus Vorlagen über Filter (analog zu Ant)
➲ Erstellung der Binaries aus den Sourcen(bedingte Generierung unterstützt)
➲ Erstellung von Archiven zur Verteilung auf Zielsysteme (jar, war, ear, ...)
➲ Einheitlicher Zugriff auf Versionskontrollsysteme (cvs, svn, ...)
➲ Bereitstellung externer Bibliotheken in zentralen Repositories

Features im Deploymentprozess
➲ Einheitliches Deployment für unterschiedliche Protokolle (sftp, ftp, rsync, file, ...)
➲ Getrennte Ausführung von Testdeployments(keine Transaktionssicherheit)
➲ Zusätzliche Ausführung von transaktionssicheren Deployments (rsync)
➲ Deployments mit mehreren Zielen konfigurierbar

Weitere Features
➲ Erstellung von JavaDoc➲ Erstellung diverser Reports➲ Erstellung einer Projektseite aus den
vorhandenen Metainformationen➲ Plattformübergreifende Arbeit unterstützt➲ Mehrsprachigkeit unterstützt➲ ...diverse weitere Features über Plugins

Unterstützte Versionierungstools
➲ CVS➲ SVN➲ ClearCase (teilweise)➲ Perforce (teilweise)➲ Star Team (teilweise)➲ Visual Source Save (teilweise)

Default Projektstruktur➲ README.txt➲ LICENSE.txt➲ src
main java resources filters assembly config
test java resources filters
site➲ target

Projektstrukturen nach SUN
➲ Struktur WEB Projekt➲ Struktur Komponenten Projekt➲ Struktur J2EE Projekt
Quelle:http://java.sun.com/blueprints/code/projectconventions.html

WEB Projekt

Komponenten Projekt

J2EE Projekt

Architekturtypen in Maven 2.0
➲ Architekturtypen bestimmen die Projektstruktur
➲ Maven 2.0 erlaubt eigene Architekturtypen➲ Architekturtypen werden als primitive
Plugins definiert➲ Definiert werden müssen:
pom.xml archetype.xml Prototypen anzulegender Dateien

Übersicht Teil II
➲ Installation Maven 1.x➲ Installation Maven 2.x➲ Metainformationen eines Projektes➲ Der Projektdescriptor➲ Maven Repositories➲ Die HTML Site➲ Reports

Installation Maven 1.x
➲ Ausführen der Setup.exe➲ Einrichten der Umgebungsvariablen
JAVA_HOME=c:\j2sdk1.4.2_04 MAVEN_HOME=C:\...\Maven 1.0.2 PATH=...;%MAVEN_HOME%\bin
➲ Erzeugen eines lokalen Repositories install_repo.bat c:\shared_maven_repo
Testaufruf in einer Shell:maven -version

Installation Maven 2.x
➲ Entpacken des Archives im Zielverzeichnis➲ Einrichten der Umgebungsvariablen
JAVA_HOME=c:\j2sdk1.4.2_04 M2_HOME=c:\...\maven-2.0 PATH=...;%M2_HOME%\bin
Testaufruf in einer Shell:mvn -version

Metainformationen eines Projektes
➲ Beschreibung des Projektes (pom.xml) Projektdokumentation Abhängigkeiten Buildprozess Verteilung / Repositories
➲ Konfiguration der Plugins project.properties (nur Maven 1.x) pom.xml (nur Maven 2.x)
➲ Realisierung spezieller Aktionen maven.xml (nur Maven 1.x) pom.xml (nur Maven 2.x) eigene Plugins

Der Projektdescriptor
➲ Im Projektdescriptor (pom.xml) können folgende Aspekte beschrieben werden:
Repositories Abhängigkeiten Plugins Properties Module Reports Management (Abhängigkeiten, Verteilung) Buildprozess (zusätzliche Ziele, Aktionen) Dokumentationen (Projektname, Aufgabe,
Lizenz,...)

Maven Repositories
➲ Aufgabe der Repositories ist die zentrale Bereitstellung von Bibliotheken und Produkten (Artifacts)
➲ Repositories werden in einer Maven spezifischen Struktur im Filesystem (lokale Repositories) bzw. im Netzwerk (remote Repositories) verwaltet
➲ Sourcen werden nicht in Repositories verwaltet, sie sind über lokale Arbeitskopien aus Versionskontrollsystemen nutzbar

Die HTML Site
➲ Maven kann aus den Metainformationen des Projektes eine HTML Site generieren
➲ Diese Site kann zusätzlich über Xdoc erweitert bzw. angepasst werden
➲ In einer Site können automatisch diverse Reports von Maven eingearbeitet werden
➲ Einige Features der Site sind: Liste der Versionskontrollsysteme (URLs) Liste benötigter Bibliotheken Liste beteiligter Entwickler Liste externer Zuarbeiter Lizenzinformationen

Standardreports
➲ Report Metrics➲ Report Checkstyle➲ Report Changes➲ Report ChangeLog➲ Report Developer Activity➲ Report File Activity➲ Report Lizenz➲ Report JavaDoc➲ Report Link Check➲ Report Task List

Vielen Dank
für
Ihr Interesse