Your SlideShare is downloading. ×
0
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Einführung Maven
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Einführung Maven

1,984

Published on

Einführung in Maven Stand 2006

Einführung in Maven Stand 2006

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,984
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Einführung in Maven Platform Independent User Group Nürnberg 2006 Autor Thomas Schubert Rechtlich geschützt durch die GNU Free Documentation License
  • 2. Übersicht <ul><li>Teil I (Allgemeines) </li></ul><ul><ul><li>Grundlagen </li></ul></ul><ul><ul><li>Projektstand </li></ul></ul><ul><ul><li>Features </li></ul></ul><ul><li>Teil II (Konzept) </li></ul><ul><ul><li>Installation </li></ul></ul><ul><ul><li>Projektbeschreibung </li></ul></ul><ul><ul><li>Repositories </li></ul></ul><ul><ul><li>HTML Site </li></ul></ul><ul><ul><li>Standardreports </li></ul></ul>
  • 3. Übersicht Teil I <ul><li>Was ist Maven </li></ul><ul><li>Maven versus Ant </li></ul><ul><li>Aktueller Projektstand </li></ul><ul><li>Features im Buildprozess </li></ul><ul><li>Features im Deploymentprozess </li></ul><ul><li>Weitere Features </li></ul><ul><li>Unterstützte Versionierungstools </li></ul><ul><li>Default Projektstruktur </li></ul><ul><li>Projektstrukturen nach Sun </li></ul><ul><li>Archetypes für abweichende Projektstrukturen </li></ul>
  • 4. Was ist Maven <ul><li>Maven ist ein neues Build System, andere Buildsysteme sind z.B. make oder ant </li></ul><ul><li>Maven arbeitet Plugin basiert </li></ul><ul><li>Maven arbeitet mehrstufig (Plugins rufen Plugins) </li></ul><ul><li>Maven ist steuerbar über Metainformation: </li></ul><ul><ul><li>Projektdescriptor </li></ul></ul><ul><ul><li>Property Dateien (nur Maven 1.0.x-1.1.x) </li></ul></ul><ul><ul><li>maven.xml (nur Maven 1.0.x – 1.1.x) </li></ul></ul><ul><li>Maven ist erweiterbar durch eigene Plugins </li></ul>
  • 5. Maven versus Ant <ul><li>Ablauf und Logik sind fest im Plugin hinterlegt </li></ul><ul><li>Realisierung einer flexiblen Steuerung über Properties obliegt dem Plugin Entwickler </li></ul><ul><li>Realisiert in Open Source Projekten </li></ul><ul><li>Ablauf und Logik sind fest im Skript hinterlegt </li></ul><ul><li>Realisierung einer flexiblen Steuerung über Properties obliegt dem Nutzer </li></ul><ul><li>Realisiert in Open Source Projekten </li></ul>Maven Ant
  • 6. Projektstand <ul><li>Veraltete Maven Version ist 1.0.x </li></ul><ul><li>Aktuelle stabile Version ist 2.0 </li></ul><ul><li>2.0 ist nicht abwärtskompatible zu 1.0 </li></ul><ul><li>Realisiert ist eine Version 1.1 welche kompatible zu 1.0 und 2.0 ist. Gedacht ist diese für den Upgrade von Produktionssystemen </li></ul><ul><li>Entwicklerversion Maven 2.0.2 verhält sich bereits stabil </li></ul>
  • 7. Features im Buildprozess <ul><li>Erstellung von Resourcen aus Vorlagen über Filter (analog zu Ant) </li></ul><ul><li>Erstellung der Binaries aus den Sourcen (bedingte Generierung unterstützt) </li></ul><ul><li>Erstellung von Archiven zur Verteilung auf Zielsysteme (jar, war, ear, ...) </li></ul><ul><li>Einheitlicher Zugriff auf Versionskontrollsysteme (cvs, svn, ...) </li></ul><ul><li>Bereitstellung externer Bibliotheken in zentralen Repositories </li></ul>
  • 8. Features im Deploymentprozess <ul><li>Einheitliches Deployment für unterschiedliche Protokolle (sftp, ftp, rsync, file, ...) </li></ul><ul><li>Getrennte Ausführung von Testdeployments (keine Transaktionssicherheit) </li></ul><ul><li>Zusätzliche Ausführung von transaktionssicheren Deployments (rsync) </li></ul><ul><li>Deployments mit mehreren Zielen konfigurierbar </li></ul>
  • 9. Weitere Features <ul><li>Erstellung von JavaDoc </li></ul><ul><li>Erstellung diverser Reports </li></ul><ul><li>Erstellung einer Projektseite aus den vorhandenen Metainformationen </li></ul><ul><li>Plattformübergreifende Arbeit unterstützt </li></ul><ul><li>Mehrsprachigkeit unterstützt </li></ul><ul><li>...diverse weitere Features über Plugins </li></ul>
  • 10. Unterstützte Versionierungstools <ul><li>CVS </li></ul><ul><li>SVN </li></ul><ul><li>ClearCase (teilweise) </li></ul><ul><li>Perforce (teilweise) </li></ul><ul><li>Star Team (teilweise) </li></ul><ul><li>Visual Source Save (teilweise) </li></ul>
  • 11. Default Projektstruktur <ul><li>README.txt </li></ul><ul><li>LICENSE.txt </li></ul><ul><li>src </li></ul><ul><ul><li>main </li></ul></ul><ul><ul><ul><li>java </li></ul></ul></ul><ul><ul><ul><li>resources </li></ul></ul></ul><ul><ul><ul><li>filters </li></ul></ul></ul><ul><ul><ul><li>assembly </li></ul></ul></ul><ul><ul><ul><li>config </li></ul></ul></ul><ul><ul><li>test </li></ul></ul><ul><ul><ul><li>java </li></ul></ul></ul><ul><ul><ul><li>resources </li></ul></ul></ul><ul><ul><ul><li>filters </li></ul></ul></ul><ul><ul><li>site </li></ul></ul><ul><li>target </li></ul>
  • 12. Projektstrukturen nach SUN <ul><li>Struktur WEB Projekt </li></ul><ul><li>Struktur Komponenten Projekt </li></ul><ul><li>Struktur J2EE Projekt </li></ul><ul><li>Quelle: </li></ul><ul><li>http://java.sun.com/blueprints/code/projectconventions.html </li></ul>
  • 13. WEB Projekt
  • 14. Komponenten Projekt
  • 15. J2EE Projekt
  • 16. Architekturtypen in Maven 2.0 <ul><li>Architekturtypen bestimmen die Projektstruktur </li></ul><ul><li>Maven 2.0 erlaubt eigene Architekturtypen </li></ul><ul><li>Architekturtypen werden als primitive Plugins definiert </li></ul><ul><li>Definiert werden müssen: </li></ul><ul><ul><li>pom.xml </li></ul></ul><ul><ul><li>archetype.xml </li></ul></ul><ul><ul><li>Prototypen anzulegender Dateien </li></ul></ul>
  • 17. Übersicht Teil II <ul><li>Installation Maven 1.x </li></ul><ul><li>Installation Maven 2.x </li></ul><ul><li>Metainformationen eines Projektes </li></ul><ul><li>Der Projektdescriptor </li></ul><ul><li>Maven Repositories </li></ul><ul><li>Die HTML Site </li></ul><ul><li>Reports </li></ul>
  • 18. Installation Maven 1.x <ul><li>Ausführen der Setup.exe </li></ul><ul><li>Einrichten der Umgebungsvariablen </li></ul><ul><ul><li>JAVA_HOME= c:j2sdk1.4.2_04 </li></ul></ul><ul><ul><li>MAVEN_HOME= C: ...Maven 1.0.2 </li></ul></ul><ul><ul><li>PATH=...;%MAVEN_HOME%in </li></ul></ul><ul><li>Erzeugen eines lokalen Repositories </li></ul><ul><ul><li>install_repo.bat c:shared_maven_repo </li></ul></ul><ul><li>Testaufruf in einer Shell: </li></ul><ul><li>maven -version </li></ul>
  • 19. Installation Maven 2.x <ul><li>Entpacken des Archives im Zielverzeichnis </li></ul><ul><li>Einrichten der Umgebungsvariablen </li></ul><ul><ul><li>JAVA_HOME= c:j2sdk1.4.2_04 </li></ul></ul><ul><ul><li>M2_HOME= c: ...maven-2.0 </li></ul></ul><ul><ul><li>PATH=...;%M2_HOME%in </li></ul></ul><ul><li>Testaufruf in einer Shell: </li></ul><ul><li>mvn -version </li></ul>
  • 20. Metainformationen eines Projektes <ul><li>Beschreibung des Projektes (pom.xml) </li></ul><ul><ul><li>Projektdokumentation </li></ul></ul><ul><ul><li>Abhängigkeiten </li></ul></ul><ul><ul><li>Buildprozess </li></ul></ul><ul><ul><li>Verteilung / Repositories </li></ul></ul><ul><li>Konfiguration der Plugins </li></ul><ul><ul><li>project.properties (nur Maven 1.x) </li></ul></ul><ul><ul><li>pom.xml (nur Maven 2.x) </li></ul></ul><ul><li>Realisierung spezieller Aktionen </li></ul><ul><ul><li>maven.xml (nur Maven 1.x) </li></ul></ul><ul><ul><li>pom.xml (nur Maven 2.x) </li></ul></ul><ul><ul><li>eigene Plugins </li></ul></ul>
  • 21. Der Projektdescriptor <ul><li>Im Projektdescriptor (pom.xml) können folgende Aspekte beschrieben werden: </li></ul><ul><ul><li>Repositories </li></ul></ul><ul><ul><li>Abhängigkeiten </li></ul></ul><ul><ul><li>Plugins </li></ul></ul><ul><ul><li>Properties </li></ul></ul><ul><ul><li>Module </li></ul></ul><ul><ul><li>Reports </li></ul></ul><ul><ul><li>Management (Abhängigkeiten, Verteilung) </li></ul></ul><ul><ul><li>Buildprozess (zusätzliche Ziele, Aktionen) </li></ul></ul><ul><ul><li>Dokumentationen (Projektname, Aufgabe, Lizenz,...) </li></ul></ul>
  • 22. Maven Repositories <ul><li>Aufgabe der Repositories ist die zentrale Bereitstellung von Bibliotheken und Produkten (Artifacts) </li></ul><ul><li>Repositories werden in einer Maven spezifischen Struktur im Filesystem (lokale Repositories) bzw. im Netzwerk (remote Repositories) verwaltet </li></ul><ul><li>Sourcen werden nicht in Repositories verwaltet, sie sind über lokale Arbeitskopien aus Versionskontrollsystemen nutzbar </li></ul>
  • 23. Die HTML Site <ul><li>Maven kann aus den Metainformationen des Projektes eine HTML Site generieren </li></ul><ul><li>Diese Site kann zusätzlich über Xdoc erweitert bzw. angepasst werden </li></ul><ul><li>In einer Site können automatisch diverse Reports von Maven eingearbeitet werden </li></ul><ul><li>Einige Features der Site sind: </li></ul><ul><ul><li>Liste der Versionskontrollsysteme (URLs) </li></ul></ul><ul><ul><li>Liste benötigter Bibliotheken </li></ul></ul><ul><ul><li>Liste beteiligter Entwickler </li></ul></ul><ul><ul><li>Liste externer Zuarbeiter </li></ul></ul><ul><ul><li>Lizenzinformationen </li></ul></ul>
  • 24. Standardreports <ul><li>Report Metrics </li></ul><ul><li>Report Checkstyle </li></ul><ul><li>Report Changes </li></ul><ul><li>Report ChangeLog </li></ul><ul><li>Report Developer Activity </li></ul><ul><li>Report File Activity </li></ul><ul><li>Report Lizenz </li></ul><ul><li>Report JavaDoc </li></ul><ul><li>Report Link Check </li></ul><ul><li>Report Task List </li></ul>
  • 25. Vielen Dank für Ihr Interesse

×