Freitag, 25. Mai 2012


Artikel

Juli 2010 | Artikel

"Maven erspart viele Diskussionen im Team"

(Link zum Artikel: http://www.entwickler-magazin.de/jaxenter//003226)

Interaktiver Vergleich der Build-Tools Maven, Ant und Gradle

  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share
Die Entwickler Stefan Isele und Martin Wildam nutzen unterschiedliche Build-Systeme: der eine Maven, der andere ANT. Welche Vorteile sehen sie in ihren bevorzugten Builstools - und welche Nachteile im jeweiligen anderen?

1. Mit welchen Build-Systemen haben Sie in Ihrer Praxis bereits Erfahrungen gesammelt?

Stefan Isele: Mit Apache ANT und Maven 2.

2. Wo sehen Sie die Stärken Ihres bevorzugten Build-Systems?

Stefan Isele: Ich arbeite bevorzugt mit Maven 2. Maven gibt die Projektstruktur weitgehend vor, dadurch erspart man sich viele Diskussionen im Team. In fremden Projekten findet man sich so schneller zurecht.

Das Dependency-Management und automatisches Laden von Artefakten aus Repositories macht es sehr einfach, modulare Anwendungen aufzubauen und Code wiederzuverwenden.

Sehr hilfreich ist es auch, dass der Sourcecode als Artefakt mit in die Repositories gepackt werden kann. Das macht es wesentlich einfacher, mal eben mit den Debugger anzuwerfen. Leider nutzen nicht alle Open-Source-Projekte diese Möglichkeit und packen den Quellcode oder Javadoc mit ins Repository.

Wenn man doch unbedingt mal was scripten muss, kann man Ant über das Maven-AntRun-Plug-in einbinden. Das nutze ich aber nur sehr selten.

3. Wo sehen Sie Schwachpunkte der anderen Build-Systeme, insbesondere Ant, Maven oder Gradle?

Stefan Isele: Mit ANT kann man recht gut Build-Scripte schreiben, keine Frage. Für ein Build-Tool ist das aber, aus heutiger Sicht, nicht genug. Management von Dependencies und Versionen, Repositories, Projektstrukturen all das fehlt mir bei Ant.

Mit Gradle habe ich noch nicht gearbeitet.

Stefan Isele ist freiberuflicher Softwarearchitekt. Sein Spezialgebiet ist die Erhöhung der Produktivität in Softwareprojekten durch den Einsatz von Generatoren. Dafür setzt er Eclipse EMF und openArchitectureWare ein.

1. Mit welchen Build-Systemen haben Sie in Ihrer Praxis bereits Erfahrungen gesammelt?

Martin Wildam: Ant.

2. Wo sehen Sie die Stärken Ihres bevorzugten Build-Systems?

Martin Wildam: Nahtlose Integration mit meiner IDE (NetBeans) - ich brauche mir im Wesentlichen keine Gedanken zu machen. Es hat mich schon unter Windows immer genervt, quasi das Setup auch wieder programmieren zu müssen. Es gab einmal Zeiten, da war eine Programminstallation damit erledigt, ein Verzeichnis auf die Platte zu kopieren und gut war's.

3. Wo sehen Sie Schwachpunkte der anderen Build-Systeme, insbesondere Ant, Maven oder Gradle?

Martin Wildam: Ich muss noch ein zusätzliches Ding installieren - dabei will ich so wenig Abhängigkeiten wie möglich in meinen Projekten haben - kommen ohnehin schnell viele zusammen. Und alles muss immer erst eingerichtet werden.

4. Welche Fragen haben Sie an Matthew McCullough (zu Maven), Hans Dockter (zu Gradle) und Jan Matèrne (zu ANT)?

Martin Wildam: Maven kenne ich zumindest aus der Theorie, aber von Gradle habe ich noch nie etwas gehört. Was ist der große Vorteil von Maven und Gradle im Vergleich zu Ant und ab welchen Projektgrößen erreichen die Vorteile einen entscheidenden Anteil?

Martin Wildam arbeitet als Softwareentwickler und Projektleiter bei MAY Computer GmbH in Wien seit über 12 Jahren und ist dort für die Integration von DMS- und ECM-Systemen sowie für die Entwicklung von Zusatzprodukten verantwortlich. Kontakt: http://it-tactics.blogspot.com/

Vielen Dank an Stefan Isele und Martin Wildam für ihre Einschätzungen. Und welche Erfahrungen haben Sie mit den verschiedenen Build-Tools gemacht?

Interaktiver Build-Vergleich: Spielregeln
1. Runde: Wir stellen die drei selben kurzen Fragen an je einen Vertreter von Maven, Ant und Gradle.

2. Runde: Geben Sie über die JAXenter-Kommentarfunktion Ihr Feedback zurück an die Build-Experten!

3. Runde: Die Build-Experten reagieren auf Ihr Feedback und beantworten Ihre Fragen!

Darüberhinaus können Sie uns Ihre Erfahrungen mit den Buildtools auch anhand der folgenden Fragen mitteilen:

  1. Mit welchen Build-Systemen haben Sie in Ihrer Praxis bereits Erfahrungen gesammelt?
  2. Wo sehen Sie die Stärken Ihres bevorzugten Build-Systems?
  3. Wo sehen Sie Schwachpunkte der anderen Build-Systeme?
  4. Welche Fragen haben Sie an Matthew McCullough (zu Maven), Hans Dockter (zu Gradle) und Jan Matèrne (zu ANT)?

Beantworten Sie die Fragen als Kommentar zu diesem Artikel oder senden Sie Ihren Erfahrungsbericht direkt an die JAXenter-Redaktion!

Wir sind gespannt auf Ihr Feedback!

andere Artikel dieser Serie

Kommentare

Gravatar Aljoscha Rittner 15.07.2010
um 16:57 Uhr
Moin!

Ich verwende seit einigen Monaten Maven statt Ant und sehe große Vorteile im Dependencies Management. Allerdings kann ich empfehlen dringend eigene Repositories in der Firma einzurichten und alle Artifakte (auch 3rd Party) dort abzulegen. Ich habe mir schon mehrfach lokale Reps zerschossen, weil die globalen Reps mal zwischenzeitig nicht zu erreichen waren, Verbindungsabbrüche zu inkonsistenten Local-Repositiories führten und die schönsten Build-Fehler verursachten. Artifactory habe ich da lieb gewonnen und werkelt schön auf einen GF 3 (es arbeitet auch gut mit Hudson zusammen). Damit kommt man zu einem nächsten großen Vorteil. Da die Projekte durch Maven so Standardisiert sind, ist ein müheloses Übertragen auf den Build Server ein Kinderspiel.

Beste Grüße!
#zitieren
Gravatar Christian M. 16.07.2010
um 10:41 Uhr
Auch bei Maven muss man sich als Entwickler kein zusätzliches "Ding" installieren, da das Binary bei Eclipse, Netbeans und Idea, wie bei Ant auch, in den Plugins enthalten ist. Netbeans hat auch schon lange eine sehr gute Maven Integration. Auch Hudson z.B. kann Maven selbst installieren.
Wenn man doch Maven "installiert" ist das auch nicht mehr als sich irgendwo "ein Verzeichnis auf die Platte zu legen".

Viele Grüße,
Christian
#zitieren
Gravatar Alwin Ibba 16.07.2010
um 12:57 Uhr
Aber das Plugin ist (zumindest bei Eclipse) nicht standardmäßig enthalten, im Gegensatz zu Ant. Dieses "Ding" muß ich als Entwickler zusätzlich installieren. #zitieren
Gravatar RPR 21.07.2010
um 19:05 Uhr
>> Management von Dependencies und Versionen, Repositories, Projektstrukturen all das fehlt mir bei Ant.

Ivy??
Vorteil: Ich kann, muss aber nicht.
#zitieren