Einführung in  Maven Platform  Independent User  Group Nürnberg 2006 Autor Thomas Schubert Rechtlich geschützt   durch die...
Übersicht <ul><li>Teil I (Allgemeines) </li></ul><ul><ul><li>Grundlagen </li></ul></ul><ul><ul><li>Projektstand </li></ul>...
Übersicht Teil I <ul><li>Was ist Maven </li></ul><ul><li>Maven versus Ant </li></ul><ul><li>Aktueller Projektstand </li></...
Was ist Maven <ul><li>Maven ist ein neues Build System, andere Buildsysteme sind z.B. make oder ant </li></ul><ul><li>Mave...
Maven versus Ant <ul><li>Ablauf und Logik sind fest im Plugin hinterlegt </li></ul><ul><li>Realisierung einer flexiblen St...
Projektstand <ul><li>Veraltete Maven Version ist 1.0.x </li></ul><ul><li>Aktuelle stabile Version ist 2.0 </li></ul><ul><l...
Features im Buildprozess <ul><li>Erstellung von Resourcen aus Vorlagen über Filter (analog zu Ant) </li></ul><ul><li>Erste...
Features im Deploymentprozess <ul><li>Einheitliches Deployment für unterschiedliche Protokolle (sftp, ftp, rsync, file, .....
Weitere Features <ul><li>Erstellung von JavaDoc </li></ul><ul><li>Erstellung diverser Reports </li></ul><ul><li>Erstellung...
Unterstützte Versionierungstools <ul><li>CVS </li></ul><ul><li>SVN </li></ul><ul><li>ClearCase (teilweise) </li></ul><ul><...
Default Projektstruktur <ul><li>README.txt </li></ul><ul><li>LICENSE.txt </li></ul><ul><li>src </li></ul><ul><ul><li>main ...
Projektstrukturen nach SUN <ul><li>Struktur WEB Projekt </li></ul><ul><li>Struktur Komponenten Projekt </li></ul><ul><li>S...
WEB Projekt
Komponenten  Projekt
J2EE Projekt
Architekturtypen in Maven 2.0 <ul><li>Architekturtypen bestimmen die Projektstruktur </li></ul><ul><li>Maven 2.0 erlaubt e...
Übersicht Teil II <ul><li>Installation Maven 1.x </li></ul><ul><li>Installation Maven 2.x </li></ul><ul><li>Metainformatio...
Installation Maven 1.x <ul><li>Ausführen der Setup.exe </li></ul><ul><li>Einrichten der Umgebungsvariablen </li></ul><ul><...
Installation Maven 2.x <ul><li>Entpacken des Archives im Zielverzeichnis </li></ul><ul><li>Einrichten der Umgebungsvariabl...
Metainformationen eines Projektes <ul><li>Beschreibung des Projektes (pom.xml) </li></ul><ul><ul><li>Projektdokumentation ...
Der Projektdescriptor <ul><li>Im Projektdescriptor (pom.xml) können folgende Aspekte beschrieben werden: </li></ul><ul><ul...
Maven Repositories <ul><li>Aufgabe der Repositories ist die zentrale Bereitstellung von Bibliotheken und Produkten (Artifa...
Die HTML Site <ul><li>Maven kann aus den Metainformationen des Projektes eine HTML Site generieren </li></ul><ul><li>Diese...
Standardreports <ul><li>Report Metrics </li></ul><ul><li>Report Checkstyle </li></ul><ul><li>Report Changes </li></ul><ul>...
Vielen Dank  für  Ihr Interesse
Nächste SlideShare
Wird geladen in …5
×

Einführung Maven

2.578 Aufrufe

Veröffentlicht am

Einführung in Maven Stand 2006

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.578
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
93
Aktionen
Geteilt
0
Downloads
11
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Einführung Maven

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 13. WEB Projekt
  14. 14. Komponenten Projekt
  15. 15. J2EE Projekt
  16. 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. 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. 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. 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. 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. 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. 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. 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. 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. 25. Vielen Dank für Ihr Interesse

×