# Maven



## denis7788 (21. Okt 2015)

Hallo,

ich würde gerne das Spring Framework nutzen und wie ich das verstehe geht das am leichtesten, indem ich Maven nutze. Ich habe eine Enterprise Application mit EJB- und Webmodul. Welches der Module muss ich denn in Maven konvertieren? 
Könnte das irgendwelche Schwierigkeiten mit sich bringen, z.B. beim Deployment? Oder werden einfach "Funktionalitäten" zum Projekt hinzugefügt (wie z.B. das Laden von Repositories)?


----------



## stg (21. Okt 2015)

Maven ist einfach nur ein Build-Tool. 
In Anbetracht dessen ergibt deine Frage für mich irgendwie keinen richten Sinn...


----------



## Dompteur (22. Okt 2015)

denis7788 hat gesagt.:


> ich würde gerne das Spring Framework nutzen und wie ich das verstehe geht das am leichtesten, indem ich Maven nutze.


Maven nimmt dir die Arbeit ab, alle Jar-Files des Spring-Frameworks und alle Libraries, die Spring benötigt, auf deine Maschine zu bringen und in den Class-Path deines Projekts hinzuzufügen.
Prinzipiell kannst du das aber auch manuell machen. Wenn du mit Maven etwas Übung hast, wirst du aber merken, dass es so komfortabler ist.
Jedes Projekt hat in Maven eine Datei, in der alle Abhängigkeiten des Projekts angegeben werden. Maven geht nun rekursiv alle Abhängigkeiten durch und erstellt daraus eine konsolidierte Liste.
Die Libraries werden dann von Maven üblicherweise von einem oder mehreren Repository-Servern geholt.
Sobald du später auf eine neuere Spring-Version umsteigst, reicht die Änderung eines Eintrags im POM-File (so heißen die Konfigurationsdateien bei Maven). Danach werden alle abhängigen Libraries in der richtigen Version automatisch geholt.



denis7788 hat gesagt.:


> Könnte das irgendwelche Schwierigkeiten mit sich bringen, z.B. beim Deployment? Oder werden einfach "Funktionalitäten" zum Projekt hinzugefügt (wie z.B. das Laden von Repositories)?


Wenn du die Erzeugung eines JAR/WAR/EAR-Files auf Maven umstellst, dann ändert sich nur der Prozess des Erstellens (also Compiler-Aufruf, Packetierung,...) nicht aber das Endprodukt.
Wenn du also alles richtig machst, gibt es da keine Probleme.



denis7788 hat gesagt.:


> Ich habe eine Enterprise Application mit EJB- und Webmodul. Welches der Module muss ich denn in Maven konvertieren?


Was verwendest du bisher für den Build-Prozess ?
Wenn du beispielsweise komplexe ANT-Skripts hast, dann kannst du als ersten Schritt die Verwaltung der Abhängigkeiten an Maven übertragen und den Rest im ANT-Skript belassen.
Auf längere Sicht wird es aber meist besser sein, alles von Maven machen zu lassen.
Dabei kannst du entweder separate Projekte für die einzelnen Bausteine deiner Anwendung anlegen oder dein Projekt in lauter Subprojekte aufteilen. Im 2. Fall "koordiniert" dein Haupt POM die POMs deine Subprojekte.


----------



## denis7788 (27. Okt 2015)

Danke für die ausführliche Erklärung!



Dompteur hat gesagt.:


> Was verwendest du bisher für den Build-Prozess ?


Da ich nicht weiß was ANT-Skripts sind, nehme ich an, dass ich keine verwende. Ich habe gedacht den Build Prozess übernimmt für mich die Entwicklungsumgebung und ich bräuchte für einfachere Anwendungen keine weiteren Hilfen. D.h. local deploye ich einfach auf den Server und für externe Server erstelle ich  war files?
Ändert sich das, sobald ich in meinem Projekt Maven nutze?
Und falls ich Maven nur für die Abhängigkeiten nutzen möchte und ich diese beispielsweise nur im Webmodul benötige, reicht es, wenn ich dieses Modul in ein Maven-Projekt überführe?


----------

