Maven Intro

download Maven Intro

of 30

  • date post

    27-Jun-2015
  • Category

    Software

  • view

    106
  • download

    0

Embed Size (px)

description

Was ist eine POM? Wie erzeuge ich neues Maven Projekt? Wie verwende ich Maven in Eclipse? Diese grundlegenden Fragen werden in dieser Maven Einführung zunächst geklärt. Anschließend werden die folgenden Konzepte vertieft: Projekt-Koordinaten, POM Struktur, Dependencies, Parent POM, Repositories, Plugins & Goals, Build Lifecycle, settings.xml und Profile. Zum Schluss gibt es noch eine Übersicht über die wichtigsten Maven Befehle.

Transcript of Maven Intro

  • 1. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 1 Maven Intro Einfhrung in Maven (not the complete reference )

2. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 2 Agenda 1. Maven was ist Das? 2. Getting Started eine kurze Demo 3. Grundkonzepte von Maven 4. POM Walkthrough 3. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 3 Maven was ist Das? 4. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 4 Was ist Maven? Maven, The Definitive Guide: Maven is an attempt to apply patterns to a project's build infrastructure in order to promote comprehension and productivity by providing a clear path in the use of best practices. Maven ist... ...ein Build-Tool ...ein Abhngigkeiten-Verwalter ...ein Repository fr Binaries ...ganz viel Convention over Configuration 5. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 5 Getting Started 6. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 6 Getting Started eine kurze Demo Ein neues Java Projekt erstellen: so sollte die Struktur aussehen: mvn archetype:generate-DarchetypeArtifactId=maven-archetype-simple-DarchetypeGroupId=org.apache.maven.archetypes-DgroupId=com.acme-DartifactId=maven-intro maven-intro | pom.xml | ---src +---main | ---java | ---com | ---acme | App.java | ---test ---java ---com ---acme AppTest.java 7. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 7 Getting Started eine kurze Demo II Kompilieren, Testen, Verpacken: Ausgabe: cd maven-intro mvn clean package [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building maven-intro [INFO] task-segment: [clean, install] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] ... [INFO] [install:install {execution: default-install}] [INFO] Installing W:01_workspacemaven-introtargetmaven-intro-0.0.1- SNAPSHOT.jar to W:05_tools.m2repositorycomacmemaven-intro0.0.1- SNAPSHOTmaven-intro-0.0.1-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4 seconds [INFO] Finished at: Wed Feb 10 13:39:01 CET 2010 [INFO] Final Memory: 15M/27M [INFO] ------------------------------------------------------------------------ Build erfolgreich! 8. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 8 Getting Started eine kurze Demo (m2eclipse) Ein neues Java Projekt erstellen: und so sollte es aussehen: File New Other Maven / Maven Project 9. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 9 Getting Started eine kurze Demo II (m2eclipse) Kompilieren, Testen, Verpacken: Ausgabe: [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Building maven-intro [INFO] task-segment: [clean, install] [INFO] ------------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] ... [INFO] [install:install {execution: default-install}] [INFO] Installing W:01_workspacemaven-introtargetmaven-intro-0.0.1- SNAPSHOT.jar to W:05_tools.m2repositorycomacmemaven-intro0.0.1- SNAPSHOTmaven-intro-0.0.1-SNAPSHOT.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 4 seconds [INFO] Finished at: Wed Feb 10 13:39:01 CET 2010 [INFO] Final Memory: 15M/27M [INFO] ------------------------------------------------------------------------ Build erfolgreich! Project Run As Maven package packaged jar file 10. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 10 Grundkonzepte von Maven 11. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 11 Maven Koordinaten Maven, The Definitive Guide: Maven Coordinates define a set of identifiers which can be used to uniquely identify a project, a dependency, or a plugin in a Maven POM. Beispiel fr eine Koordinate: Wiederfinden eines Artefakts: com.acme maven-intro jar 0.0.1-SNAPSHOT 12. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 12 POM Datei Eine einfache pom.xml: 4.0.0 com.acme maven-intro jar 0.0.1-SNAPSHOT maven-intro http://maven.apache.org junit junit 3.8.1 test POM = Project Object Model 13. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 13 Elemente des POM The Basics Maven Koordinaten Abhngigkeiten (Parent POM, Dependencies) Properties / Variablen Build Settings Build Plugins und deren Konfiguration Reports More Project Information Organisation, Entwickler, Lizenzen, etc.. Environment Settings Repositories (Dependency Resolution, Distribution) Issue Tracking, SCM, Continous Integration, Mailinglisten Profile Die komplette POM Referenz findet Ihr hier: http://maven.apache.org/pom.html 14. Einfhrung in Maven Zhlke 2010 4. Mai 2010 Torben Knerr Folie 14 Dependencies werden in der pom.xml definiert mittels werden von einem Repository geladen vom lokalen .m2 repository vom zentralen Maven repository von anderen definierten Remote Repositories sind transitiv wenn A B und B C, dann A C haben einen Scope meistens: compile, test, runtime, provided com.acme some-dependency