# Maven



## boskop (25. Feb 2005)

ich erwäge in einem Projekt maven einzusetzten.
Das Ding ist aber ziemlich komplex, deshalb wollte ich mal fragen, ob jemand weiss, wo ich ein Beispielprojekt finden kann, oder sonstige gute Tutorials, die über die Hompage hinaus gehen.

danke im voraus,

boskop


----------



## Bleiglanz (26. Feb 2005)

wirklich überall, 

http://wiki.codehaus.org/maven/OtherMavenArticles

gut gefallen hat mir auch das freie PDF

http://www.sandcastsoftware.com/articlesandtutorials/index.html


sooooo komplex ist maven auch nicht, leider kann man "vernünftigerweise" nur ein jar pro projekt erstellen, so dass Web/J2EE Entwicklung extrem zäh vonstatten geht ("der Reactor")


----------



## foobar (26. Feb 2005)

Wie sind denn eure Erfahraungen mit maven?
Hat das schon mal jemand eingesetzt?
Was sind die Vor- und Nachteile?
Worauf sollte man achten?
Gibt es Alternativen?


----------



## Bleiglanz (26. Feb 2005)

>>Wie sind denn eure Erfahraungen mit maven?

gemischt, manches ist gut - anderes extrem nervig

>>Hat das schon mal jemand eingesetzt?

ja, aber immer nur bei Projekten, die eine einzige jar ausspucken

>>Was sind die Vor- und Nachteile?

Vorteil: weniger denken, weil man ein vorgegebenes Projektlayout übernehmen kann, kein gefrickel mit ant, schöne automatische integration von JUnit, schöne (aber von keinem angeschaute) automatisch Projektwebseite, zentrales Repository für jars (mein lieblingsfeature) und viele Plugins

Nachteile: erzeugt immer nur ein jar/war usw. . Es ist zwar möglich, mit explodierten .war oder .ear zu arbeiten, aber maven ist zu langsam um das komfortabel hinzukriegen

überhaupt: während der Programmierung ist es zu langsam, man kann es aber gut für tägliche builds verwenden

>>Worauf sollte man achten?

möglichst an das maven-layout halten (nur in notfällen eigenes jelly-zeugs in eine maven.xml)

>>Gibt es Alternativen?

ant 1.6. kann auch vieles


----------



## foobar (26. Feb 2005)

Danke für die Tips.


----------



## boskop (26. Feb 2005)

Ja ich danke auch, 

aber das mit dem nur ein Jar erstellen stimmt glaubich nicht ganz, es gibt doch die möglichkeit, mit dem maven-multiproject plugin zu arbeiten, da definiert man ein übergelagertes projekt für mehrere projekte. Also genaugenommen ist natürlich die Reihenfolge anders, man macht ein Projekt und teilt das dann in subprojekte auf.


----------



## Bleiglanz (27. Feb 2005)

boskop hat gesagt.:
			
		

> Ja ich danke auch,
> aber das mit dem nur ein Jar erstellen stimmt glaubich nicht ganz, es gibt doch die möglichkeit, mit dem maven-multiproject plugin zu arbeiten, da definiert man ein übergelagertes projekt für mehrere projekte. Also genaugenommen ist natürlich die Reihenfolge anders, man macht ein Projekt und teilt das dann in subprojekte auf.



ja ja der Reactor

funktioniert gut, aber mal angenommen du machst ein J2EE ear file mit 1 jar als Bibliothek, 1 jar als Webarchiv war und einem jar für die EJBs. Dann brauchst du noch 1 Maven-Projekt für Reactor

=> jetzt gibts 4 Projektverzeichnisse, von denen 3 Stück einen Source-Ordner, classes usw. haben (ok, der POM kann sich vererben es ist also nicht ganz so schlimm)

angenommen du änderst ein Source file, dann startest du den Reactor, dann wartest du zwei minuten bis ein neues ear zur verfügung steht, weil maven mit seinem Repository, den Unit-Tests usw. rummacht

Das ist wesentlich länger als sich den Zeugs per ant in einem Rutsch selbst zu erstellen...

Dummerweise dürfen in z.B. in Eclipse Projektverzeichnisse nicht ineinander enthalten sein, da liegen dann also 4 Projekte nebeneinander, auch nicht schön

irgendwie entwicklerunfreundlich das ganze (wie gesagt, für tägliche builds ok)


----------



## Guest (5. Apr 2006)

boskop hat gesagt.:
			
		

> Ja ich danke auch,
> 
> aber das mit dem nur ein Jar erstellen stimmt glaubich nicht ganz, es gibt doch die möglichkeit, mit dem maven-multiproject plugin zu arbeiten, da definiert man ein übergelagertes projekt für mehrere projekte. Also genaugenommen ist natürlich die Reihenfolge anders, man macht ein Projekt und teilt das dann in subprojekte auf.


----------

