# Maven "Ziele" / "Targets" wie in Ant, möglich?



## Luke.Skywalker (14. Sep 2011)

Abend ...

Ich habe bis jetzt nur geringe Erfahrungen mit Ant gesammelt, d.h. schnell ein build.xml aufsetzen und die notwendigen Targets mit z.B. einigen exec-Befehlen definieren. Nun bin ich gezwungen mit einem Maven 2 Projekt zu arbeiten, in welchem ich gerne eine "saubere Struktur" mit unterschiedlichen  - Ant ähnlichen -  Targets arbeiten würde.

*Beispiel:* DEV Umgebung für Tests und paar Spielereien ...

Teil A: Startet den DEV Server
Teil B: Startet die DEV Skripte
Teil C: Startet die Tests
Ziel ABC: Startet die Teile A, B und C

*Beispiel:* LIVE Umgebung prüft erst die Tests, führt Live-Konfigs aus, etc.

Teil X: Führt die Tests aus Teil C aus
Teil Y: Initialisiert die Live-Konfigs
Ziel XY: Startet die Teile X und Y

Ich stehe momentan total auf dem Schlauch. Habe einige Beiträge und Tutorial in Sachen Plugins, Goals und dem Lifecycle gefunden... jedoch fehlt mir für das oben genannte Beispiele eine Art "best practice" (auch wenn es drei unterschiedliche sind - viele Meinungen = mehrere best practices).

Tendieren würde ich zum Plugin.... und würde mich daher über eine Info bzgl. der ersten Schritte und ein paar Zeilen Code freuen. Genial wäre natürlich ein adäquater Ansatz im Vergleich zu den Ant Targets... 


Danke & Gruß,
Sky


----------



## maki (14. Sep 2011)

Solltest dich in maven einlesen/einarbeiten, nicht nur geringfügig, was du möchtest hat mit maven nicht so viel zu tun.

Maven ist sehr unterschiedlich zu Ant, man scriptet damit keine builds, man konfiguriert sie.

External Resources on Maven


----------



## Luke.Skywalker (15. Sep 2011)

Danke für die Antwort.

Ich habe angenommen, dass ich mir z.B. ein Plugin (oder ähnliches MVN Konstrukt) bauen kann, welchem ich dann bei unterschiedlichen "Zielen" per Dependency Injection unterschiedliche Objekte / Abstrakte Klassen / Whatever mitgebe. Die Übergabe würde dann beim jeweiligen Deployment, also in der Konfiguration der Releases definiert sein.

Gruß,
Sky


----------



## maki (15. Sep 2011)

Du solltest am besten gar nichts annehmen ohne die Grundlagen verstanden zu haben 

Ist nicht böse gemeint, aber mal schnell mit Ant-halbwissen zu versuchen einen Maven Build umzubauen muss schief gehen, gelernt hättest du dabei auch nichts, schlimmer wird es nur wenn man versucht mit Ant-halbwissen ein Maven Plugin zu schreiben.

Man kann in maven auhc Ant Skripte ausführen lassen, ist aber in 99% der Fälle ein zeichen dafür, dass man Maven nciht verstanden hat und führt zu sehr seltsamen konstrukten... und viel Frust.

Maven bietet die verschiedenene Phasen an, Maven wird deine Unittests in einer dieser Phasen ausführen (JUnit), Maven kann auhc Integraitonstests starten & auswerten, etc. pp.

Wichtig ist, das du eine Sache einsiehst: Du musst dich an Maven anpassen, nciht umgekehrt.


----------



## kama (15. Sep 2011)

Hallo,



Luke.Skywalker hat gesagt.:


> *Beispiel:* DEV Umgebung für Tests und paar Spielereien ...
> 
> Teil A: Startet den DEV Server
> Teil B: Startet die DEV Skripte
> ...


Kannst im Bereich DEV-Server ein wenig konkreter werden? JBoss/Glassfish/Tomcat/WebSphere? was auch immer ? Was für eine Anwendung entwickelst Du hier? Web-Anwendung ?

Was ist mit DEV-Scripten gemeint? Datenbank aufsetzen ? Was bedeutet "startet die Tests" ? Werden hier Unit/Integrationstests ausgeführt ? 

Gruß
Karl Heinz Marbaise


----------

