Vergleichen Sie mit der IDE für Java, brauchen wir noch Ant?

8

Nicht lange vorher hatte ich in Ant gegraben und benutze es mit einfachen Übungen (Kompilieren, Komponententest, Paket). Jetzt ist meine übliche Arbeit unter Eclipse für Java-Entwicklung, die übliche Arbeit kann einfach durch die Eclipse-Funktion erledigt werden: In-Time Compiling, klicken Sie auf die Schaltfläche zum Bereitstellen, verschiedene Assistenten ..

Ich frage mich also, ob wir unter Eclipse ein Bedürfnis nach Ant haben. Und wenn es ist, bei welchem ​​Aspekt sollten wir Ant zusammen mit Eclipse verwenden.

    
Vacker 25.10.2011, 04:46
quelle

4 Antworten

9

Beim Erstellen von Anwendungen geht es nicht nur darum, sie in Ihrer IDE zu erstellen. Sie müssen eine automatisierte Build- und Deployment-Methode einrichten, die beispielsweise für kontinuierliche Integration und Bereitstellung ausgeführt werden kann. Das gebaute Paket muss in verschiedene Umgebungen und schließlich in die Produktion entsorgt werden. Du kannst sie nicht aus deiner eigenen Box bauen. Sie können es nicht aus Ihrer IDE heraus aufbauen. Sie benötigen ein separates Build-System. Das ist, wo Build-Tools wie ANT ins Spiel kommen.

Beachten Sie auch, dass die Möglichkeiten von IDEs zum Erstellen und Bereitstellen begrenzt sind und dass dies nicht ihre Stärke ist. Es ist jedoch möglich, ANT und seine Build-Skripte zu verwenden und führe sie aus der Finsternis aus . Auf diese Weise haben Sie einen einzigen Satz von Skripts für Ihren lokalen (Entwickler) Build und den Haupt-Build-Prozess. Da ANT JAVA-basiert ist, können Sie Ihr Build-Tool auch an Ihre Bedürfnisse anpassen, indem Sie benutzerdefinierte Aufgaben schreiben.

Wenn Sie etwas Standard als ANT für Ihr Build-System verwenden, können Sie auch zu einer anderen IDE wie Intellij IDEA wechseln und trotzdem das Build-System verwenden, das Sie kennen.

    
manojlds 25.10.2011 04:54
quelle
3

Benötigen Sie Ant, wenn Sie über die IDE bauen können? Natürlich nicht! Du kannst das selbst sehen.

Sollten Sie immer noch einen IDE-unabhängigen Build mit Standardwerkzeugen haben? Natürlich!

Hinweis Ich habe Ant nicht gesagt. Es gibt eine Reihe von Build-Tools wie Maven oder Gradle, mit denen Java-Programme erstellt werden können. Es gibt jedoch Gründe, warum Sie ein IDE-unabhängiges Build-System wollen:

  • Sie haben einen Continuous Integration Server : Sie haben einen. Recht? Wenn du keinen bekommst. Ein Continuous Integration Server erstellt automatisch Ihr Projekt (und führt jeden Test aus) jedes Mal, wenn eine Änderung an das Versionskontrollsystem übergeben wird. Es fängt Fehler auf. Es bietet auch eine OFFIZIELLE BUILD . Nicht mehr Es hat auf meiner Maschine funktioniert! Ausreden. Wenn der Continuous Integration Server es nicht erstellen und die Tests erfolgreich ausführen kann, ist die Software nicht gut.
  • Sie haben andere, die mit Ihrem Projekt auf einem anderen Computer in einer anderen Umgebung arbeiten müssen. Das Problem mit IDEs ist, dass es spezifisch für Ihr System ist. Eine andere Person überprüft Ihr Projekt und verwendet möglicherweise eine andere IDE. Sie haben vielleicht ein etwas anderes Setup. Eine unabhängige Build-Skriptsprache wie Ant garantiert, dass sie Ihr Projekt wie geplant neu erstellen können.

Wenn Sie ein Projekt mit jemand anderem teilen, benötigen Sie eine unabhängige Standardmethode, um dieses Projekt zu erstellen und genau zu wissen, was für das Funktionieren dieses Builds erforderlich ist. IDEs können diese Informationen ausblenden.

    
David W. 05.01.2015 13:45
quelle
2

Ich bin ein Benchmark-Tester mit Ant jeden Tag. Unsere Umgebung verfügt über 7 Testmaschinen und 1 Konsolenmaschine. Bei jedem Testlauf aktualisiert das ant-Skript die Arbeitskopie, startet die Datenbank neu, erstellt das Produkt und den Grinder mit den richtigen Eigenschaften und setzt sie auf den Maschinen ein und startet sie und die Überwachungssoftware. Mit der 1000-Zeilen-Builddatei kann ich einfach eine "ant A B C D E" -ähnliche Zeile in das Terminal auf der Konsole eingeben. Ich denke nicht, dass es eine gute Idee ist, dies in einer IDE wie Eclipse oder NetBeans oder irgendetwas anderes zu tun.

Auch im Produkt meiner Firma ist Ameisen weit verbreitet. Wir verwenden ant, um Beispieldaten für den Benchmark-Test zu erstellen. Wir verwenden ant, um Tomcat zu aktualisieren, das mit unserem Produkt gebündelt wird; Wir verwenden auch Ameisen, um Selen-Tests zu bauen und durchzuführen.

Wenn Sie den Quellcode freigeben möchten, ist das Einschließen der IDE-Projektdateien ebenfalls keine gute Idee, da es viele IDEs gibt. Und was ist, wenn der Benutzer nur einen neuen Build von Ihrem neuesten Code erhalten möchte (wenn Sie keinen nächtlichen Build bereitstellen)? Es ist eine gute Idee, eine Reihe von Build-Dateien von ant (oder anderen Build-Tools) zur Verfügung zu stellen. Damit können Sie Ihren Klassenpfad für den Build verwalten.

    
coolcfan 25.10.2011 07:15
quelle
1

Die kürzeste Antwort hier wäre Flexibilität. Die IDEs enthalten möglicherweise vordefinierte Funktionen und können sogar einige Optionen mithilfe von Assistenten auswählen. Es ist vergleichbar mit der Generierung von HTML mit Dreamweaver oder solchen Tools. Es wird niemals so flexibel sein wie das reine Ding. Zum Beispiel verwendet NetBeans Ant unterhalb.

Zitiert nach: Netbeans: Build Tools

  

Das Standard-NetBeans-IDE-Projektsystem wird direkt auf dem System erstellt   das Ant-Build-System. Alle Projektbefehle wie "Build   Projekt "und" Datei im Debugger ausführen ", Ziele in der Ant des Projekts aufrufen   Skript. Sie können Ihr Projekt daher außerhalb der IDE erstellen und ausführen   genau wie es gebaut und in der IDE ausgeführt wird.

Selbst nachdem Sie Werkzeuge für diesen Zweck verwendet haben, werden Sie höchstwahrscheinlich noch auffrischen. Also, was ich sage ist, was die IDEs für Sie tun, ist nur eine Teilmenge dessen, was Sie mit der reinen Ameise oder Maven tun können (wenn Sie es benutzen). Für einfache Aufgaben wie Kompilieren und Ausführen machen IDEs ziemlich gute Arbeit! Aber wenn Sie einen so komplexen Anwendungsfall wie die Bereitstellung auf CI-IDEs haben, wird Ihnen das nicht weiterhelfen. Sie benötigen die gesamte Flexibilität Ihrer Build-Tools.

    
Amanuel Nega 05.01.2015 12:05
quelle

Tags und Links