Wir haben Batch-Kommandodateien (Windows .bat), die einfach die in der Entwickler-IDE kompilierten Klassen durch umfassendere Ant-Builds (z. B. Abrufen von CVS, Clean Compile, JAR, Archiv, E-Mail usw.) auflösten, langsam ersetzt.
Ich habe viel Zeit mit dem Erlernen (und Debuggen von Problemen) von Ant verbracht, daher kann ich es für diese Aufgaben am besten verwenden. Aber ich frage mich, ob Ant immer noch so verbreitet ist wie zu Beginn meines Lernprozesses, oder ob "die Welt sich weiterentwickelt hat", um etwas Neueres (und vielleicht etwas Glatteres) zu werden. (Ich habe angefangen, mehr Maven-Builds zu sehen, die ich zum Beispiel nie benutzt habe.)
Die praktische Bedeutung dieser Frage ist, ob ich neue Entwickler dazu dränge, Ant zu lernen , oder ob sie etwas anderes für Builds lernen sollten.
Ich bin nie zu neugierig auf die Trends, daher wäre es großartig, von anderen Java-Entwicklern zu hören, was sie für das beste Build-Tool halten und was sie für neue Entwickler lernen sollten.
Antworten:
Ich stimme anderen hier zu, dass Maven anscheinend die wichtigsten Projekte übernommen hat, die ich mir angesehen habe.
Während Ant hochflexibel ist, ist die Build-Datei nicht standardisiert. Wenn Sie also zu einem neuen Projekt oder Unternehmen wechseln, werden die Ziele anders benannt, die Datei ist anders strukturiert, die Abhängigkeiten zwischen den Zielen können hergestellt werden oder auch nicht.
Mit Maven haben Sie auch den Vorteil, dass Sie keine binären Abhängigkeiten (ich spreche von Jars) in Ihrem SCM-System haben müssen. Viele andere großartige Java-Tools können eine Maven-POM-Datei lesen (der Vorteil der Standardisierung), sodass Tools wie IDEs ein Maven-Projekt sehr schnell einrichten können und Build-Tools wie Jenkins problemlos Maven-Builds ausführen können.
quelle
Ich habe mit Ant und mit Maven gearbeitet. Nach meiner Erfahrung hat Maven einen sehr starken Rand über Ant.
Was Maven betrifft, so waren meine Erfahrungen mit der Dokumentation bisher nicht so gut. Ich glaube, ich habe ein Produkt gesehen, dessen Dokumentation schlechter ist als die von Maven, aber ich kann mich nicht erinnern, welches (eine alte CSV-Bibliothek iirc).
quelle
Wir verwenden Maven seit mehreren Jahren. Es unterstützt Ant-Scripting (genau wie Ant BeanShell), sodass Ihre Ant-Kenntnisse möglicherweise weiterhin nützlich sind. Maven ist viel leistungsfähiger, hat jedoch einige zusätzliche Infrastrukturanforderungen (Sie möchten, dass ein Artifactory- oder Nexus-Server Ihre Builds hostet, wenn Sie Komponenten für mehrere Projekte freigeben). Es ist auch ganz anders als Ant, so dass Sie nicht viel von Ihrem vorhandenen Wissen nutzen können.
quelle
Ich denke, Ant allein ist tot im Wasser; Es ist viel zu manuell und viel zu fehleranfällig, alle Klassenpfadabhängigkeiten manuell angeben zu müssen (abhängig von Ihrer Konfiguration). Wenn Ant zusammen mit einem Abhängigkeitsverwaltungstool wie Ivy verwendet wird, behält es seine Leistungsfähigkeit und macht die manuelle Verwaltung Ihrer Abhängigkeiten überflüssig.
Das andere Problem bei Ant im Vergleich zu Maven ist der Mangel an Standardisierung, der in anderen Antworten erwähnt wurde. Wenn ich von Projekt zu Projekt oder Job zu Job gehe, ist es eines der nervigsten Dinge, den neuen Standard für verschiedene Ant-Dateien zu lernen. Mavens Ziel der Konvention über die Konfiguration bedeutet, dass zwei verschiedene Projekte eine sehr ähnliche Struktur haben und der Übergang zwischen ihnen viel einfacher ist als mit Ant.
Ob Ant noch Mainstream ist oder nicht, hängt von der Entwicklungsumgebung ab, in der Sie arbeiten. Wenn sich das Projekt in einem kleinen Unternehmen oder einem Start-up befindet, würde ich mir vorstellen, dass Maven die natürliche Wahl ist und Zeit in Anspruch genommen werden kann in die Infrastruktur zu investieren, wie ein Artifactory. Große Unternehmen werden jedoch viele Jahre und viel Geld in ihre Ant-Infrastruktur (Konfigurationen, globale Build-Dateien usw.) investiert haben, was bedeutet, dass sie weniger daran interessiert sind, sich von einer Technologie zu entfernen, in die sie so viel Geld investiert haben.
quelle
Maven ist seit vielen Jahren auf dem Vormarsch, und jetzt muss ich es lernen. Die Dinge werden sich immer ändern, und zu wissen, dass Ant seine Position verliert, ist keine schlechte Sache.
Maven ist vielleicht nur für kurze Zeit auf dem Vormarsch, aber wenn es uns die Arbeit erleichtert, lohnt es sich, die Zeit zum Lernen zu investieren.
quelle