frectures / maven

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Maven löst 2 Probleme:

  1. Dependency Management: benötigte Bibliotheken/Frameworks (und Maven-Plugins) werden automatisch heruntergeladen
  2. Reproduzierbarer Build: unabhängig von der verwendeten/favorisierten Entwicklungsumgebung

Ein Maven-Projekt wird in der Datei pom.xml (Project Object Model) konfiguriert.

Empfohlene Ordner-Struktur sowie Dateifluss zwischen den Ordnern innerhalb 6 wichtiger Phasen:

Mavens Standard-Lebenszyklus teilt sich in 23 Phasen auf, von denen 8 mit Plugins vorbelegt sind:

Phase Plugin:Goal Bedeutung
process-resources resources:resources kopiert Produktiv-Ressourcen (z.B. Bilder oder Textdateien)
compile compiler:compile kompiliert produktiven Quelltext Example.java zu JVM-Bytecode Example.class
process-test-resources resources:testResources kopiert Test-Ressourcen
test-compile compiler:testCompile kompiliert Test-Quelltext ExampleTest.java zu JVM-Bytecode ExampleTest.class
test surefire:test führt die Tests aus
package jar:jar / war:war komprimiert Produktiv-Klassen in ein .jar oder .war
install install:install kopiert das .jar in das lokale Maven-Repository
deploy deploy:deploy kopiert das .jar in ein entferntes Maven-Repository

Der Scope einer Dependency regelt ihre Verfügbarkeit zu 3 verschiedenen Zeitpunkten:

<scope> compile test runtime Beispiele
compile Apache Commons, Guava
test JUnit, Mockito, AssertJ
provided Servlet API, Java EE API
runtime JDBC Treiber

Wenn man keinen expliziten Scope angibt, wird implizit compile verwendet.

About