Frage

Von meiner kleinen Menge an Erfahrung, habe ich nur Ant als Build-Tool verwendet. Gibt es noch andere Projekte, die besser sind, und warum?

War es hilfreich?

Lösung

Maven

Es ist viel besser als Ameise, weil für die meisten gängigen Aufgaben, die Sie nicht eine komplizierte build.xml zu schreiben, Maven hat eine sehr gute Standardwerte und es ist alle Konvention über Konfiguration.

Es hat auch ein großes zentrales Repository von Bibliotheken und es ist sehr einfach zu konfigurieren, wie „letzte stabile commons-was auch immer verwenden“. Maven wird die neueste stabile Version für Sie dann downloaden (nicht mehr in Gläsern in VCS-Kontrolle) und wenn eine neue Upstream stabile Version freigegeben wird, wird es auch herunterladen. Natürlich, es ist nur so einfach es bis zu einem gewissen bestimmten Version sperren sollten Sie das brauchen.

Es ist auch gut integriert sowohl mit Netbeans und Eclipse (m2eclipse Plugin), so dass die IDE-Auszeichnung, was Einstellungen (einschließlich Abhängigkeiten), die Sie in der pom.xml-Datei angeben.

Es gibt auch einige Nachteile zu Maven: einige Plugins sind eher schlecht dokumentiert, die Integration mit beiden IDEs nicht wirklich perfekt ist, und dass auf unterschiedliche Weise können einige Fehlermeldungen schwer zu verstehen

.

Andere Tipps

Ant ist immer noch ein wichtiger Akteur. Nach meiner Erfahrung ist es dominant. Plus, mit Efeu, behandelt es einige von Maven Stärken. IMO, Ant ein Rahmen für andere Tools werden wird. XML zu starr ist (siehe Link unten)

Maven 2 ist auch ein wichtiger Akteur. Ich kenne Leute, die ganz wie es und Borste auf Kritikpunkte, die für Maven 1 wahr wäre (es einen langen Weg zurückgelegt hat).

Groovy ist ein paar coolen Sachen in dem Build-Raum anbieten, weil sie auf Ant bauen. Gant ist in Grails verwendet, kann aber in Gradle subsumiert werden. Diese können für Java als auch verwendet werden.

Auf der Gefahr meinen eigenen Blog Zuhälterei, hier ist ein Post über Gant und Gradle. Hier ist ein Link auf die sehr aktuelle Debatte über ihre Zukunft.

im Unternehmen, Ameise ist immer noch der verschanzt Spieler. Abhängigkeiten nicht schnell ändern. im Gegensatz zu Open-Source-Projekten, die ziemlich neueste Version von abhängigen Gläsern in Bewegung bleiben, versuchen die meisten Unternehmen schnell zu nicht um ihre Abhängigkeiten zu ändern. Da sind Vorteile des Maven nicht zu viel im Vergleich zu ant.

Dann wieder, wenn Sie einige der Maven-Funktionen wollen, Ameise Leute haben Efeu ( http: // Ameise. apache.org/ivy/ ) für die Abhängigkeiten kennzeichnen.

Wenn Sie möchten, mit ant fortzusetzen, habhaft „ANT IN AKTION“, 2. Auflage, so dass Sie Ameise auf die beste Produktivität nutzen können.

Viel Glück,

Einige Leute mögen Ivy , die eine Abhängigkeit Verwaltung Dingen für Ant ist so nehme ich an, dass die Menschen von einem Ant Hintergrund kommt, wird es mögen.

Andere wie Buildr . Es ist eine JRuby Sache, wenn Sie also Ruby und Java in den gleichen Projekten jonglieren kann, dann nehme ich es interessant sein wird.

Ich persönlich benutzen Sie einfach Maven . Es ist einfach eine Standard-pom.xml Datei zu schüren und haben alle Build-Befehle zur Verfügung. Und wenn das Projekt wächst, haben Sie bereits die Infrastruktur für Plug-in laufen und das Hinzufügen von Abhängigkeiten.

Sie haben auch Gant . Gant ist Groovy + Ant, können Sie Ihre Aufgaben im Klar groovy schreiben können, und Sie können auch jede Ameise Aufgabe nennen. Wenn Sie einen Java-Shop und wollen, sind die Ameisen Fähigkeiten wieder verwenden Sie haben aber XML nicht mögen, empfehle ich Gant, ist es ver einfach zu installieren und Sie können es in ant einbetten (und auch gant aus ant nennen).

Ich mag SCons , die ein Build-Tool-Dateien, deren Konfiguration sind alle nur Skripte Python. Dies wird für jeden ansprechen, den Python oder ähnliche Skriptsprachen kennt. SCons sind so konzipiert, mit Java gut zu funktionieren sowie C / C ++ und anderen Sprachen, und ich habe sehr zufrieden mit ihm in der Vergangenheit.

Da SCons Dateien in Python geschrieben sind, können Sie beliebige Python-Code schreiben, wenn Sie sich selbst etwas tun besonderen finden müssen. wenn Sie völlig vertraut mit Python jedoch sind, dann wird es möglicherweise eine höhere Lernkurve als zu versuchen, Ant oder etwas zu verlängern ähnlich zu tun, was Sie wollen.

Maven2 scheint die aufstrebende Sache zu sein.

Für unsere Projekte aber wir sind wieder auf ant Migration machbar wo auch immer.

Maven2 erfordert einiges an Wissen, um es genau so, wie Sie wollen zu bekommen, und Maven2 Versionen scheinen CLASSPATHs anders zu handhaben.

Und es ist ein Schmerz, alle Lizenzen in den Abhängigkeiten der Abhängigkeiten enthalten zu überprüfen, die in erhalten gezogen werden.

Und kann eine langsame Start-up-Zeit, wie Sie die Abhängigkeiten selbst herausfinden müssen, aber zumindest ist es leicht lesbar. Keine Zauberei geht hier:)

Wenn Sie Maven tun verwenden, geben einen Gedanken an einen internen Repository wie Nexus. Auf diese Weise Ihre Software ist nicht tot, wenn einige Bibliotheken entscheiden, aus dem Netz gehen weg *.

* bekamen wir mit maven1 verbrannt; der ibiblio maven1 Repository umleitet und maven1 Umleitungen nicht unterstützt: (

Ich möchte Sie bitten, Ihre Anforderungen zu starten, wenn Sie das richtige Werkzeug betrachten. Jedes Projekt ist anders, Sie das Tool verwenden, sollte das Problem Raum reflektiert nicht die Art und Weise.

aber sagen, dass ich glaube, für den allgemeinen Gebrauch Ameise ist wahrscheinlich immer noch die beste allgemeine Tool für Java-Anwendungen zu bauen. Es wird oft effektiv mit anderen Werkzeugen für Abhängigkeitsmanagement verwendet, aber es geht wieder los Fußleisten, ohne ein Problem in eine Lösung aus.

Die sehr gute Nachricht ist, dass, wenn Ihr Prozess gute Schalen Build-Tools sind eine ziemlich schmerzlos Prozess - Lektion -. Mit einem guten Prozess für das Problem bei der Hand skaliert starten

Sie finden bereits einige Antworten in Was einige gute Java machen Dienstprogramme? .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top