Einführung Maven

download Einführung Maven

If you can't read please download the document

  • date post

    16-Apr-2017
  • Category

    Technology

  • view

    2.545
  • download

    1

Embed Size (px)

Transcript of Einführung Maven

  • Einfhrung in MavenPlatform Independent User Group

    Nrnberg 2006

    AutorThomas Schubert

    Rechtlich geschtzt durch die GNU Free Documentation License

  • bersichtTeil I (Allgemeines)GrundlagenProjektstandFeaturesTeil II (Konzept)InstallationProjektbeschreibungRepositoriesHTML SiteStandardreports

  • bersicht Teil IWas ist MavenMaven versus AntAktueller ProjektstandFeatures im BuildprozessFeatures im DeploymentprozessWeitere FeaturesUntersttzte VersionierungstoolsDefault ProjektstrukturProjektstrukturen nach SunArchetypes fr abweichende Projektstrukturen

  • Was ist MavenMaven ist ein neues Build System, andere Buildsysteme sind z.B. make oder antMaven arbeitet Plugin basiertMaven arbeitet mehrstufig(Plugins rufen Plugins)Maven ist steuerbar ber Metainformation:ProjektdescriptorProperty 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 AntAblauf und Logik sind fest im Plugin hinterlegtRealisierung einer flexiblen Steuerung ber Properties obliegt dem Plugin EntwicklerRealisiert in Open Source Projekten

    Ablauf und Logik sind fest im Skript hinterlegtRealisierung einer flexiblen Steuerung ber Properties obliegt dem NutzerRealisiert in Open Source Projekten

    MavenAnt

  • ProjektstandVeraltete Maven Version ist 1.0.xAktuelle stabile Version ist 2.02.0 ist nicht abwrtskompatible zu 1.0Realisiert ist eine Version 1.1 welche kompatible zu 1.0 und 2.0 ist.Gedacht ist diese fr den Upgrade von ProduktionssystemenEntwicklerversion Maven 2.0.2 verhlt sich bereits stabil

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

  • Features im DeploymentprozessEinheitliches Deployment fr unterschiedliche Protokolle (sftp, ftp, rsync, file, ...)Getrennte Ausfhrung von Testdeployments(keine Transaktionssicherheit)Zustzliche Ausfhrung von transaktionssicheren Deployments (rsync)Deployments mit mehreren Zielen konfigurierbar

  • Weitere FeaturesErstellung von JavaDocErstellung diverser ReportsErstellung einer Projektseite aus den vorhandenen MetainformationenPlattformbergreifende Arbeit untersttztMehrsprachigkeit untersttzt...diverse weitere Features ber Plugins

  • Untersttzte VersionierungstoolsCVSSVNClearCase(teilweise)Perforce(teilweise)Star Team(teilweise)Visual Source Save(teilweise)

  • Default ProjektstrukturREADME.txtLICENSE.txtsrcmainjavaresourcesfiltersassemblyconfigtestjavaresourcesfilterssitetarget

  • Projektstrukturen nach SUNStruktur WEB ProjektStruktur Komponenten ProjektStruktur J2EE Projekt

    Quelle:http://java.sun.com/blueprints/code/projectconventions.html

  • WEB Projekt

  • Komponenten Projekt

  • J2EE Projekt

  • Architekturtypen in Maven 2.0Architekturtypen bestimmen die ProjektstrukturMaven 2.0 erlaubt eigene ArchitekturtypenArchitekturtypen werden als primitive Plugins definiertDefiniert werden mssen:pom.xmlarchetype.xmlPrototypen anzulegender Dateien

  • bersicht Teil IIInstallation Maven 1.xInstallation Maven 2.xMetainformationen eines ProjektesDer ProjektdescriptorMaven RepositoriesDie HTML SiteReports

  • Installation Maven 1.xAusfhren der Setup.exeEinrichten der UmgebungsvariablenJAVA_HOME=c:\j2sdk1.4.2_04MAVEN_HOME=C:\...\Maven 1.0.2PATH=...;%MAVEN_HOME%\binErzeugen eines lokalen Repositoriesinstall_repo.bat c:\shared_maven_repo

    Testaufruf in einer Shell:maven -version

  • Installation Maven 2.xEntpacken des Archives im ZielverzeichnisEinrichten der UmgebungsvariablenJAVA_HOME=c:\j2sdk1.4.2_04M2_HOME=c:\...\maven-2.0PATH=...;%M2_HOME%\bin

    Testaufruf in einer Shell:mvn -version

  • Metainformationen eines ProjektesBeschreibung des Projektes (pom.xml)ProjektdokumentationAbhngigkeitenBuildprozessVerteilung / RepositoriesKonfiguration der Pluginsproject.properties (nur Maven 1.x)pom.xml (nur Maven 2.x)Realisierung spezieller Aktionenmaven.xml(nur Maven 1.x)pom.xml(nur Maven 2.x)eigene Plugins

  • Der ProjektdescriptorIm Projektdescriptor (pom.xml) knnen folgende Aspekte beschrieben werden:RepositoriesAbhngigkeitenPluginsPropertiesModuleReportsManagement (Abhngigkeiten, Verteilung)Buildprozess (zustzliche Ziele, Aktionen)Dokumentationen (Projektname, Aufgabe, Lizenz,...)

  • Maven RepositoriesAufgabe 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) verwaltetSourcen werden nicht in Repositories verwaltet, sie sind ber lokale Arbeitskopien aus Versionskontrollsystemen nutzbar

  • Die HTML SiteMaven kann aus den Metainformationen des Projektes eine HTML Site generierenDiese Site kann zustzlich ber Xdoc erweitert bzw. angepasst werdenIn einer Site knnen automatisch diverse Reports von Maven eingearbeitet werdenEinige Features der Site sind:Liste der Versionskontrollsysteme (URLs)Liste bentigter BibliothekenListe beteiligter EntwicklerListe externer ZuarbeiterLizenzinformationen

  • StandardreportsReport MetricsReport CheckstyleReport ChangesReport ChangeLogReport Developer ActivityReport File ActivityReport LizenzReport JavaDocReport Link CheckReport Task List

  • Vielen Dank

    fr

    Ihr Interesse